摘要: 题意:输入两个非负整数a、b和正整数n(0<=a,b<264,1<=n<=1000),你的任务是计算f(ab)除以n的余数,f(0) = 0, f(1) = 1,且对于所有非负整数i,f(i + 2) = f(i + 1) + f(i)。 分析: 1、对于某个n取余的斐波那契序列总是有周期的,求出每 阅读全文
posted @ 2017-02-09 23:45 Somnuspoppy 阅读(514) 评论(0) 推荐(0)
摘要: 题意:给定平面上n(n<=105)个点和一个值D,要求在x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过D。 分析: 1、根据D可以算出每个点在x轴上的可选区域,计算出区域的左右端点。 2、贪心选点,每次都选这个区域的最右端点,这样此端点可存在于尽可能多的区域。 阅读全文
posted @ 2017-02-09 20:17 Somnuspoppy 阅读(175) 评论(0) 推荐(0)
摘要: 题意:输入一个长度为n(n<=100000)的序列a,满足1<=ai<=i,要求确定每个数的正负号,使得所有数的总和为0。 分析: 1、若总和为0,则未加符号之前,所有数之和必为偶数。 2、现在考虑是否有一部分数的和能等于sum/2。 方法:cnt[i]为数字i的个数,(当前的sum)/i为需要凑出 阅读全文
posted @ 2017-02-09 19:18 Somnuspoppy 阅读(158) 评论(0) 推荐(0)
摘要: 题意:有n(n<=800000)个工作,已知每个工作需要的时间qi和截止时间di(必须在此之前完成),最多能完成多少个工作?工作只能串行完成。第一项任务开始的时间不早于时刻0。 分析:按截止时间排序,在若当前工作完成后超过截止时间,则优先选择需要时间少的工作,即若优先队列中需要时间最长的工作a, 1 阅读全文
posted @ 2017-02-09 17:38 Somnuspoppy 阅读(356) 评论(0) 推荐(0)
摘要: 题意:下面是一个随机数发生器。输入seed的初始值,你的任务是求出它得到的前n个随机数标准差,保留小数点后5位(1<=n<=10000000,0<=seed<264)。 分析:方差的式子最好化简一下再计算,否则按部就班,提前算出平均数,代入计算会产生精度误差导致WA。 化简方法: 将上式全部展开,并 阅读全文
posted @ 2017-02-09 16:34 Somnuspoppy 阅读(399) 评论(0) 推荐(0)
摘要: 题意:输入n(在32位带符号整数范围内),计算下面C++函数的返回值。 分析:合并同类项加速一下即可。 假设n为100,则n/34=2,那么通过n/2=50,可知道34到50的结果都是2,以此加速。 阅读全文
posted @ 2017-02-09 15:29 Somnuspoppy 阅读(295) 评论(0) 推荐(0)
摘要: 题意:初始串为一个1,每一步会将每个0改成10,每个1改成01,因此1会依次变成01,1001,01101001,……输入n(n<=1000),统计n步之后得到的串中,"00"这样的连续两个0出现了多少次。 分析:找规律,输出n等于20之前所有的结果 得到结论,i为奇数时,a[i] = a[i - 阅读全文
posted @ 2017-02-09 15:13 Somnuspoppy 阅读(281) 评论(0) 推荐(0)
摘要: 题意:有n(n<=16384)位选手参加编程比赛。比赛有3道题目,每个选手的每道题目都有一个评测之前的预得分(这个分数和选手提交程序的时间相关,提交得越早,预得分越大)。接下来是系统测试。如果某道题目未通过测试,则该题的实际得分为0分,否则得分等于预得分。得分相同的选手,ID小的排在前面。 已知所有 阅读全文
posted @ 2017-02-09 14:58 Somnuspoppy 阅读(547) 评论(0) 推荐(0)