数学思维题
shao1996
这个作者很懒,什么都没留下…
展开
-
CodeForces 534C
题意:第一行给两个数,n 和 A,n 表示有n 个骰子,A表示 n 个骰子掷出的数的和。第二行给出n个数,表示第n个骰子所能掷出的最大的数,这些骰子都有问题,可能或多或少的掷不出几个数,输出n个骰子掷不出的数的个数。输入:2 84 41 352 32 3输出:3 3 40 1分析:先将能够掷出的最大的数都加起来,之后求出除该原创 2016-07-27 20:37:19 · 468 阅读 · 0 评论 -
CodeForces 427A
题意:警察抓小偷,一共n 个人,-1表示小偷,整数表示警察的数量,一个警察只能抓他旁边的小偷,问没有抓住的小偷的数量。输入:3-1 -1 181 -1 1 -1 -1 1 1 111-1 -1 2 -1 -1 -1 -1 -1 -1 -1 -1分析:直接遍历,将所有的整数加和sum,遇到-1时判断,如果sum=0,就加一次,如果sum>0就su原创 2016-07-27 20:57:40 · 202 阅读 · 0 评论 -
CodeForces 427B
题意:n个囚犯站成一排,每个囚犯都有一个危害值代表其危害程度,现要连续运输c个囚犯到其他监狱,要求这c个囚犯的危害值均小于t,求一共有多少种选法。输入:4 3 32 3 1 11 1 1211 4 22 2 0 7 3 2 2 4 9 1 4输出:206分析:统计伤害值不大于t 的罪犯的数量--n原创 2016-07-27 21:24:02 · 244 阅读 · 0 评论 -
CodeForces 131B
题意:给一个数 n ,然后给 N 个数(-10~10),一对相反数可以组成一组,问一共可以组成几组,0本身互为相反数。输入:5-3 3 0 0 330 0 0输出:33分析:将所有的数加10,统计每个数出现的次数,可以组成相反数的数目=num[i]*num[20-i],另外0特殊考虑即可,数目=num[0]*(num[0]-1)/2;代码:#in原创 2016-07-18 09:06:01 · 283 阅读 · 0 评论 -
POJ 3175--条件枚举
题意:给出一个数 n,之后给出n个数,表示小数的位数,求那个数开方后的小数位数是这n个数,求出满足这样条件的最小数。输入:3123输出:17分析:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) [sqr = 求平方, ceil = 向上取整]所以,就原创 2016-07-29 11:15:13 · 319 阅读 · 0 评论 -
CodeForces 342C--矩形盒子能最多放多少个球
题意:一个盒子,形状由半球和立方体组成,长 h + r, 宽 2r ,深度 r ,每个球的直径是 r ,给定 r 和 h , 问该盒子能放球的最多数是多少?分析:固定的是,我们先放 h / r 的整数倍的球,即: int(h/r)*2,当剩余的 h' (即h 减去整数倍的r)不够 r 时,我们再进行判断,当 h'大于等于r / 2时,则还可以再放两个球,当 h'小于 r/2 时,此原创 2016-07-08 15:09:46 · 427 阅读 · 0 评论 -
HDU 5703--找规律
题意:给一个数,输出这个数可以分解成其他数几个数的和,输出这样分解的个数的二进制形式。输入:13输出:100分析:当a=3,b=4(100),当a=4,b=8(1000),当a=5,b=16(10000).当a=n时,b的二进制形式100..00(n-1)。代码:#include#include#include#include原创 2016-07-30 10:32:46 · 441 阅读 · 0 评论 -
Educational Codeforces Round 15--AMaximum Increase--求最长上升数列的长度
题意:给一个数列,求出这个数列最长上升数列的长度。输入:51 7 2 11 156100 100 100 100 100 10031 2 3输出:313分析:只找上升的数列,找到破坏上升数列的ID---k,用i - k,找到所有 i - k 中最大的那个即可。代码:#include #include using原创 2016-07-30 11:24:46 · 226 阅读 · 0 评论 -
HDU-5675
题意:给 N 个数,如果这个数可以有两个数的平方差求得,那么输出True,否则输出False。输入:462581105输出:FalseTrueTrueTrue分析:所有的除1以外的奇数都可以,所有的除4外的可以整除4的都可以,其余的不行。代码:#include #include #inclu原创 2016-08-03 19:35:59 · 221 阅读 · 0 评论 -
CodeForces 540A
题意:给一个数字n,下面给 n 个数(0~9),表示真密码,然后下面同样给出n个数,表示伪密码,问将伪密码变成真密码最小的移动步数。输入:58219564723输出:13分析:当正向移动步数超过5时,就逆向移动。代码:#include using namespace std;int main(){ int n; char原创 2016-07-26 21:04:21 · 232 阅读 · 0 评论 -
CodeForces 288B
题意:给定 n 和k,n 表示有n个房子,然后每个有一个编号,一只鹅要从一个房间中开始走,下一站就是房间的编号,现在要你求出有多少种方法编号并满足下面的要求:1.如果从1到k开始走,一定能走到 1。2.如果从k+1到n 开始走,一定走不到 1.3.如果从 1 开始走,那么一定能回到1,并且走过房间数不为0.输入:5 27 4输出:54原创 2016-07-26 20:56:59 · 245 阅读 · 0 评论 -
CodeForces 289A
题意:第一行给两个数n,k,之后给出n 行每行两个数字a,b 表示区间的边界,每次调整的时候只能调整a-1或者b+1,而且区间之间不可相交,要保证n 个区间长度的和可以被k整除的移动步数。如果不用移动就能被K整除就输出0.输入:2 31 23 43 71 23 34 7输出:20分析:如果区间长度之和对 k 有余,那么它的移原创 2016-07-26 10:04:29 · 181 阅读 · 0 评论 -
山东省第五届ACM大赛--Problem E: Full Binary Tree
中文题意: 有一棵满二叉树,根节点是1,然后依次从上到下,从左到右是2,3,4...10^9,求任意两点i,j的最短距离。分析: 刚拿到这个题目的时候,看到求二叉树两点间最短距离,马上想到的是bfs求,可是这样的话就需要建树,由于刚开始接触数据结构,直接不会建树,所以就是一脸的懵逼,想了一会就想到这是一个二叉树,路径无非就是左右,只要不走重复的原创 2016-05-16 19:40:49 · 326 阅读 · 0 评论 -
SGU 169
G - NumbersTime Limit:250MS Memory Limit:4096KB 64bit IO Format:%I64d & %I64uSubmit Status Practice SGU 169Description169. Numberstime limit per test: 0.25 sec.原创 2016-05-12 21:04:37 · 362 阅读 · 0 评论 -
codeforces 651B Beautiful Paintings
B. Beautiful Paintingstime limit per test: 1 secondmemory limit per test: 256 megabytesThere are n pictures delivered for the new exhibition. Thei-th painting has beauty ai. We k原创 2016-05-11 17:50:46 · 329 阅读 · 0 评论 -
CodeForces 632C
题意:输入一个数 n ,后面有 n 个字符串输入,将这些字符串拼接成一整串,输出按字典序排列最小的一串。iuput:4abbaabacababcderoutput:abacabaabbabcder分析:水题,可以用容器string定义字符串,然后将写一个比较函数,直接调用sort排序,就好。注意:比较函数是比较原创 2016-05-31 20:51:42 · 408 阅读 · 0 评论 -
CodeForces 348A
题意:n 个人玩游戏,每轮游戏都有n-1 个玩家和1个主持,然后给出,每个人都想当几次玩家,问至少要办几轮比赛才可以满足每个人的需要?输入:33 2 242 2 2 2输出:43分析:要尽量少的办比赛,因此上界就是要求当玩家的最大需求+1,在满足这个前提下,将所有需求加和,除以玩家的数量,如果除不尽则向上取整。之后取最大值就行。代原创 2016-07-22 16:22:57 · 246 阅读 · 0 评论 -
CodeForces 547A--找循环节
题意:给青蛙和花浇水,,每浇一次水,青蛙的高度变成 (x1*h1+y1)%m ,花的高度变成 (x2*h2+y2)%m,问至少经过多少步花和青蛙的高度等于相应的高度?输入:54 21 10 12 310231 21 01 21 1输出:3-1分析:两者都不能到达相应高度:输出-1;两者同时到达相应高度,输出任意一个;不同时原创 2016-07-13 11:24:09 · 282 阅读 · 0 评论 -
CodeForces 534B
题意:一辆车,变速行驶,每秒走v,给第一秒的速度v1,最后一秒的速度v2,最大变速d,问t时间内,问该车最远能走多远?输入:5 64 210 1010 0输出:26100代码:#include using namespace std;int main(){ int v1,v2,t,d,sum=0; cin原创 2016-07-25 11:56:35 · 251 阅读 · 0 评论 -
CodeForces 166C--stl
题意:给你一个数n 和一个数k,然后给你一个由n个数组成的数列,先按非递减序排好,然后让你判断这个数列的第 (n + 1) / 2 项是不是k(数列的下标从1开始),如果不是,你要往这个数列中插入m个数使插入后的数列的第(n + m + 1) / 2 项是k , 输出m的最小值。输入:3 1010 20 303 41 2 3输出:14分析原创 2016-07-14 17:35:04 · 356 阅读 · 0 评论 -
CodeForces 289B--中位数
题意:一个n * m的矩阵,将该矩阵的元素经过加或者减一个固定的数字 d,使得该矩阵的所有元素全部相等,问运算的最小步骤?若不能做到则输出-1。输入:2 2 22 46 81 2 76 7输出:4-1分析:将矩阵的所有元素全部排序,找到中位数,将所有的数字向中位数靠拢,如果各元素对d的取余不相等,那么输出-1.当时做的时候,原创 2016-07-26 09:51:22 · 319 阅读 · 0 评论 -
coderforces-701B--数学去重stl
题意:给一个n*n 的棋盘,之后给出m个坐标点,在这些坐标点上放炸弹,炸弹能消除该炸弹所在行和列的方格都受到伤害,每一次M操作后都要输出没有被伤害的方格的数量。输入:3 31 13 12 25 21 55 1100000 1300 400输出:4 2 0 16 9 9999800001 分析:将输入的坐标行原创 2016-08-04 22:58:33 · 223 阅读 · 0 评论