
51Nod
文章平均质量分 72
spongewxy
这个作者很懒,什么都没留下…
展开
-
1091 线段的重叠
X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。Input第1行:线段的数量N(2 <= N <= 50000)。第2 - N + 1行:每行2个数,线段的起点和终点原创 2015-05-27 11:53:21 · 1067 阅读 · 0 评论 -
1402 最大值
一个N长的数组s[](注意这里的数组初始下标设为1,而不是0,即N个元素为s[1],s[2],...,s[N]),满足以下性质:1)每个元素都是非负的整数,且s[1]=0;2)任意两个相邻元素差值的绝对值不大于1,即| s[i]-s[i+1] |3)对于部分特殊点xi,要求s[xi]问在以上约束下s[]中的最大值最大可能是多少?Input多组测试数据,第原创 2015-06-12 21:53:53 · 619 阅读 · 0 评论 -
距离之和最小 V3
X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。该点到其他点的带权距离 = 实际距离 * 权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。Input第1行:点的数量N。(2 <= N <= 10000)第2 - N + 1行:每行2个数,中间用空格分隔,分别是点的位置及权值。(-10^5 Outp原创 2015-07-02 21:55:14 · 729 阅读 · 0 评论 -
1276 岛屿的数量
有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。给出N个岛的高度。然后有Q个查询,每个查询给出一个海平面的高度H,问当海平面高度达到H时,海上共有多少个岛屿。例如:岛屿的高度为:{2, 1, 3, 2, 3}, 查询为:{0, 1, 3, 2}。当海面高度为0时,所有的原创 2015-06-11 20:45:42 · 581 阅读 · 0 评论 -
1246 罐子和硬币
有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,你可以把这k个硬币任意分配到罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。每次你可以询问某个罐子,如果该罐子里有硬币,则你可以得到1个(但你不知道该罐子中还有多少硬币),如果该罐子是空的,你得不到任何硬币,但会消耗1次询问的机会。你最终要得到至少c枚硬币(c 例如:有3个罐子,10个硬币原创 2015-06-09 19:14:46 · 780 阅读 · 0 评论 -
1163 最高的奖励
有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。Input第1行:一个数N,表示任务的数量(2 <= N <= 50000)第2 - N + 1行,每行2个数,中间用空格分隔,表原创 2015-06-09 17:53:31 · 730 阅读 · 0 评论 -
1127 最短的包含字符串
O(n)处理即可。#include #include #include #include #include #include #include #include #include #include using namespace std;const int maxn = 100000;const int inf = 0x3f3f3f3f;char s[maxn];原创 2015-06-09 10:15:56 · 696 阅读 · 0 评论 -
1105 第K大的数
数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数。例如:A:1 2 3,B:2 3 4。A与B组合成的C包括2 3 4 4 6 8 6 9 12共9个数。原创 2015-06-28 12:46:34 · 530 阅读 · 0 评论 -
1102 面积最大的矩形
有一个正整数的数组,化为直方图,求此直方图包含的最大矩形面积。例如 2,1,5,6,2,3,对应的直方图如下:面积最大的矩形为5,6组成的宽度为2的矩形,面积为10。Input第1行:1个数N,表示数组的长度(0 <= N <= 50000)第2 - N + 1行:数组元素A[i]。(1 OutPut输出最大的矩形面积原创 2015-06-08 10:13:38 · 611 阅读 · 0 评论 -
51Nod 1103 N的倍数
一个长度为N的数组A,从A中选出若干个数,使得这些数的和是N的倍数。例如:N = 8,数组A包括:2 5 6 3 18 7 11 19,可以选2 6,因为2 + 6 = 8,是8的倍数。Input第1行:1个数N,N为数组的长度,同时也是要求的倍数。(2 <= N <= 50000)第2 - N + 1行:数组A的元素。(0 OutPut如果没有符原创 2015-06-26 22:35:27 · 722 阅读 · 0 评论 -
51Nod 1060 最复杂的数
把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 100)第2 - T + 1行:T个数,表示需要计算的n。(1 OutPut原创 2015-06-25 23:14:07 · 756 阅读 · 0 评论 -
1042 数字0-9的数量
给出一段区间a-b,统计这个区间内0-9出现的次数。比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次。Input两个数a,b(1 OutPut输出共10行,分别是0-9出现的次数Input示例10 19Output示例1111111原创 2015-05-30 19:37:00 · 1079 阅读 · 0 评论 -
1050 循环数组最大子段和
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050本题的最大子段和分为两种情况:(1)正常情况下的最大子段和(2)首尾元素相接情况下的最大子段和。导致第二种情况的原因是数组中存在一段负数和,且其绝对值很大。这样我们便可以求解出这段负数和,然后用总的和减去这段负数和,剩下的那些元素和即为我原创 2015-05-31 11:57:09 · 420 阅读 · 0 评论 -
1289 大鱼吃小鱼
1289 大鱼吃小鱼题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的原创 2015-05-27 19:44:08 · 1650 阅读 · 0 评论 -
1112 KGold
给出N个人在0时刻的财富值M[i](所有人在0时刻的财富互不相等),以及财富增长速度S[i],随着时间的推移,某些人的财富值会超越另外一些人。如果时间足够长,对于财富增长最快的人来说,他的财富将超越所有其他对手。求发生的前10000次超越,分别是谁超过了谁?如果总的超越次数不足10000,则输出所有超越,如果1次超越都不会发生,则输出No Solution。输出按照超越发生的时间排序,同一原创 2015-07-05 09:48:41 · 848 阅读 · 0 评论