51Nod
文章平均质量分 88
z岁月无声
这个作者很懒,什么都没留下…
展开
-
51nod-1307 绳子与重物
1307 绳子与重物 题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注有N条绳子编号 0 至 N - 1,每条绳子后面栓了一个重物重量为Wi,绳子的最大负重为Ci。每条绳子或挂在别的绳子下或直接挂在钩子上(编号-1)。如果绳子下所有重物的重量大于绳子的最大负重就会断掉(等于不会断)。依次给出每条绳子的负重Ci、重物的重量Wi...原创 2018-04-12 21:51:34 · 318 阅读 · 0 评论 -
51nod-1483 化学变换
1483 化学变换 题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有n种不同的化学试剂。第i种有ai升。每次实验都要把所有的化学试剂混在一起,但是这些试剂的量一定要相等。所以现在的首要任务是把这些化学试剂的量弄成相等。有两种操作:· 把第i种的量翻倍,即第i种的量变成2ai。· 把第i种的量...原创 2018-04-25 22:06:50 · 232 阅读 · 0 评论 -
51nod-1287 加农炮
1287 加农炮 题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果H <= A...原创 2018-05-17 10:54:33 · 213 阅读 · 0 评论 -
51nod-1179 最大的最大公约数
1179 最大的最大公约数 题目来源: SGU基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。Input第1行:一个数N,表示输入正整数的数量。(2 <= N <= 50000)第2...原创 2018-05-10 20:11:41 · 429 阅读 · 0 评论 -
51nod-1562 玻璃切割
1562 玻璃切割 题目来源: CodeForces基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注现在有一块玻璃,是长方形的(w 毫米× h 毫米),现在要对他进行切割。切割的方向有两种,横向和纵向。每一次切割之后就会有若干块玻璃被分成两块更小的玻璃。在切割之后玻璃不会被移动。现在想知道每次切割之后面积最大的一块玻璃是多少。样例解释:对于第四次切...原创 2018-05-04 21:30:30 · 296 阅读 · 0 评论 -
51nod-1640 天气晴朗的魔法
1640 天气晴朗的魔法 题目来源: 原创基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法...原创 2018-05-17 21:30:25 · 199 阅读 · 0 评论 -
51nod-1636 教育改革
1636 教育改革 题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注最近A学校正在实施教育改革。一个学年由n天组成。A学校有m门课程,每天学生必须学习一门课,一门课程必须在一天内学习完。在学习完第i门课程后,学生们会收到 xi 个家庭作业,其中 xi是区间[ai,bi]里的一个整数 。每门课还有一个属性,就是复杂度 ci...原创 2018-05-18 17:56:30 · 215 阅读 · 0 评论 -
51nod-1521 一维战舰
1521 一维战舰 题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注爱丽丝和鲍博喜欢玩一维战舰的游戏。他们在一行有n个方格的纸上玩这个游戏(也就是1×n的表格)。在游戏开始的时候,爱丽丝放k个战舰在这个表格中,并不把具体位置告诉鲍博。每一只战舰的形状是 1×a 的长方形(也就是说,战舰会占据a个连续的方格)。这些战舰不能...原创 2018-05-06 15:27:38 · 190 阅读 · 0 评论 -
51nod-1475 建设国家
1475 建设国家 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注小C现在想建设一个国家。这个国家中有一个首都,然后有若干个中间站,还有若干个城市。现在小C想把国家建造成这样的形状:选若干(可以是0个)的中间站把他们连成一条直线,然后把首都(首都也是一个中间站)连在这一条直线的左端。然后每个点可以连一个城市,特别的是最右端的点可以连接两个城市。现在有...原创 2018-04-29 16:12:02 · 209 阅读 · 0 评论 -
51nod-1135 原根
1135 原根 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)给出1个质数P,找出P最小的原根。Input输入1个质数P(3 <= P <= 10^9)Output输出P最小的原根。Input示例3Output示例2Code :/*设 m...原创 2018-04-29 20:37:55 · 160 阅读 · 0 评论 -
51nod-1205 流水线调度
1205 流水线调度 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注N个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为a[i]和b[i]。你可以安排每个作业的执行顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工...原创 2018-05-10 10:33:04 · 295 阅读 · 0 评论 -
51nod-1270 数组的最大代价
1270 数组的最大代价 题目来源: HackerRank基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai,都满足1 <= Ai <= Bi。数组A的代价定义如下: (公式表示所有两个相邻元素的差的绝对值之和)给出数...原创 2018-04-21 13:02:07 · 245 阅读 · 0 评论 -
51nod-1051 最大子矩阵和
1051 最大子矩阵和 基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2Input第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。...原创 2018-04-13 13:37:43 · 398 阅读 · 0 评论 -
51nod-1536 不一样的猜数游戏
1536 不一样的猜数游戏 题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注瓦斯亚和皮台亚在玩一个简单的游戏。瓦斯亚心中想一个整数x,它是1到n之间的整数。然后皮台亚尝试着猜这个数字。皮台亚每次问一个形如这样的问题:这个x是y的倍数吗?这个游戏的流程是这样的:首先皮台亚把所有他想问的形如上述的问题都问出来(当然他也可以...原创 2018-04-30 14:19:14 · 225 阅读 · 0 评论 -
51nod-1127 最短的包含字符串
1127 最短的包含字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。Input第1行,1个字符串。字符串的长度 <= 100000。Output输出...原创 2018-04-13 22:06:58 · 367 阅读 · 0 评论 -
51nod-1557 两个集合
1557 两个集合思路:暴力搜索判断,两年前写的自己都看不懂了。。。Code:#include<iostream>#include<algorithm>using namespace std;const int MAX_N=100005;int n,a,b;int c[MAX_N];int d[MAX_N]...原创 2018-04-13 23:43:44 · 300 阅读 · 1 评论 -
51nod-1625 夹克爷发红包
1625 夹克爷发红包 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注在公司年会上,做为互联网巨头51nod掌门人的夹克老爷当然不会放过任何发红包的机会。现场有n排m列观众,夹克老爷会为每一名观众送出普通现金红包,每个红包内金额随机。接下来,夹克老爷又送出最多k组高级原创 2018-04-19 18:44:34 · 231 阅读 · 0 评论 -
51nod-1402 最大值
1402 最大值 题目来源: TopCoder基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注一个N长的数组s[](注意这里的数组初始下标设为1,而不是0,即N个元素为s[1],s[2],...,s[N]),满足以下性质:1)每个元素都是非负的整数,且s[1]=0;2)任意两个原创 2018-04-19 21:28:12 · 201 阅读 · 0 评论 -
51nod-1243 排船的问题
1243 排船的问题 题目来源: Codility基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一个码头中有N艘船和N个木桩,船的长度为2*X,码头的宽度为M,N个木桩的位置(相对码头左岸的位置)会在数据中给出。船和船之间不能重叠,即每艘船的船头不能超过上一艘船的船尾,当然也不能超出码头的两岸。船和木桩之间用绳子连接,并且1个木桩只能栓1条船,绳子的...原创 2018-05-02 14:17:15 · 315 阅读 · 0 评论 -
51nod-1110 距离之和最小 V3
1110 距离之和最小 V3 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。点P到点P[i]的带权距离 = 实际距离 * P[i]的权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。Input第1行:点的数量N。(2 <= N <= ...原创 2018-05-09 14:50:00 · 236 阅读 · 0 评论 -
51nod-1246 罐子和硬币
1246 罐子和硬币 题目来源: FaceBook HackerCup 比赛题基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,你可以把这k个硬币任意分配到罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。每次你可以询问某个罐子,如果该罐子里有硬币,则你可以得...原创 2018-04-21 11:15:03 · 274 阅读 · 0 评论 -
51nod-1103 N的倍数
1103 N的倍数 题目来源: Ural 1302基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一个长度为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 ...原创 2018-05-08 11:32:31 · 294 阅读 · 0 评论 -
51nod-1093 骆驼和香蕉
1093 骆驼和香蕉 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注一只骆驼每次最多负重K只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。现在这只骆驼要去到N公里以外的地方,如果N > K,那么即使骆驼装满了香蕉,也无法1次走到目的地,不过骆驼可以在中途设置一些补给点,先把一些香蕉运过去,下次经过时可以在这些地方进行补给。这样一来便能走到距...原创 2018-05-15 19:30:02 · 336 阅读 · 0 评论 -
51nod-1163 最高的奖励
1163 最高的奖励 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有N个任务,每个任务有一个最晚结束时间以及一个对应的奖励。在结束时间之前完成该任务,就可以获得对应的奖励。完成每一个任务所需的时间都是1个单位时间。有时候完成所有任务是不可能的,因为时间上可能会有冲突,这需要你来取舍。求能够获得的最高奖励。Input第1行:...原创 2018-07-25 15:56:33 · 241 阅读 · 0 评论 -
51nod-1319 跳跃游戏
思路:利用三角形三边关系 a+b>c,a-b<c将a[n]往后循环一遍,将x变为正数,预处理出a[2*n]的前缀和sum[2*n]若x>=sum[n],则直接ans+=n*(x.sum[n]); x%=sum[n]; 相当于机器人一直沿x轴跳跃将x缩小到sum[n]内,在遍历前缀和1-->n,当x<=sum[i]时,表示 a+b=sum[i]>x,可构成...原创 2018-08-07 19:14:44 · 250 阅读 · 0 评论 -
51nod-1405 树的距离之和
思路:可以先随便选取节点1作为树的根节点,然后从根节点遍历树,每次保存k节点的子节点总数 d[k].s 以及所有子节点都k节点的距离和 d[k].sum,在遍历过程就可完成保存。然后再从根节点遍历一遍树,求所有点到k节点的距离,就可以转换成求k节点的子节点到k节点的距离s1和k节点的头节点 id 其所在的另一树的节点到k节点的距离s2。而s1=d[k].sum,s2=(头结点所在树的s...原创 2018-08-13 02:13:02 · 402 阅读 · 0 评论 -
51nod-1422 沙拉酱前缀
思路:可以将m个步骤所到的最后位置记录下来,在查询位置t所在的数字时,可以利用二分来查找到t所在的构造步骤k里,若k的类型为1则可以直接输出k.x,否则就将t缩小到前k.li位置中,在重复查找一直到步骤k的类型为1.Code :#include<iostream>#include<algorithm>using namespace std;typedef...原创 2018-08-16 01:24:29 · 217 阅读 · 0 评论 -
51nod-1020 逆序排列
思路:离线dp,dp[n][k]表示n个数k个逆序数的数量,状态转换方程有点思路。对于dp[n][k],最大的一个数n的位置放置在第n-i(0<=i<=n-1)位置上时,n所产生的逆序数为n-(n-i)=i,因此dp[n][k]=sum{dp[n-1][k-i]} (0<=i<=n-1)同理,dp[n][k-1]=sum{dp[n-1][k-1-i}(0&l...原创 2018-08-13 16:10:18 · 303 阅读 · 0 评论 -
51nod-1125 交换机器的最小代价
地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1125思路:所有机器a[]保存下标由小到大排序,对于不在其正确位置的数就需要改变位置,那么肯定是从最小值开始交换,若最小值a1不在其正确位置,那么它肯定是占了别人的位置,因此与其交换,这样一直到a1也在其正确位置为止,这样一直都是a1在和别人交换,因此代价是最...原创 2018-08-31 17:11:57 · 280 阅读 · 0 评论 -
51nod-1033 骨牌覆盖 V2
地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1033思路:状态压缩DP+矩阵快速幂对于每行最多只有5列,因此可以枚举出它们的全部状态 0->(1<<m)-1,对于状态其二进制1表示已经有骨牌覆盖,0表示没有,1.由于是1X2的骨牌,则二进制数11,110是合法的,1,10是不合法...原创 2018-09-28 15:22:33 · 367 阅读 · 0 评论 -
51nod-1186 质数检测 V2
地址:http://www.51nod.com/Challenge/Problem.html#!#problemId=1186思路:Miller-Rabin随机算法+__int128大法Code:#include<iostream>using namespace std;typedef long long LL;typedef __int128 LLL;LL...原创 2018-11-07 20:05:25 · 248 阅读 · 0 评论 -
51nod-1657 电子龟
地址:http://www.51nod.com/Challenge/Problem.html#!#problemId=1657思路:DP. 好久没做题了,改改删删做了2个多小时,没想到一次就AC了( ̄▽ ̄)~*dp[i][j]:表示以第i个'T'结尾的字符串中改变j个'T'时的最大价值。首先预处理出每个'T'影响的'F'个数为到下一个'T'之间的'F'个数,记为d[i],(d[0]...原创 2019-03-13 22:59:07 · 774 阅读 · 0 评论 -
51nod-1700 首尾排序法
地址:http://www.51nod.com/Challenge/Problem.html#!#problemId=1700思路:对于数组中的数a[i]都可以移到首尾去,只是移动的次序不同而使数组有序,因此只要找到一个最长的不移动的子序列即可,例如 [3 1 2 4 5]中为[3 4 5]最长,那么其可以不变,这样改变的个数就为最少的Code:#include<iostr...原创 2019-03-14 11:03:30 · 381 阅读 · 0 评论 -
51nod-1337 翻转游戏
思路:此题主要在于对 '?' 的处理,在S[i-1]转换为S[i],对于S[i][j]='?'的情况,S[i][j]是否要改变。例如+----?+-+若遇到'?',S[1][2]改变成 '+',则最小次数为6,而S[1][2]与S[0][2]相同则最小次数为5,观察可知,当S[1][2]转变成'+'时,"+--"到"--+"需要2次,而"--+"到"+-+"时还是要将 '-'变...原创 2018-08-07 10:22:55 · 280 阅读 · 0 评论 -
51nod-1282 时钟
思路:参考大佬的博客https://blog.csdn.net/luricheng/article/details/72993223,分分钟懂了QAQ,时钟的指针的相对位置不变,相邻指针间之差也不会变,因此可以对相邻指针之差的序列进行比较,对于最小字典序相同的序列都是相同的。Code :#include<iostream>#include<algorithm&...原创 2018-08-02 11:44:52 · 208 阅读 · 0 评论 -
51nod-1390 游戏得分
思路:贪心+大胆猜想+推理,首先判断是否合法,第i盘得2*i-1,即为1,3,5,7,9...,2*i-1 这样两者分数和为 i*2,因此当a+b不是平方数时则不合法,而当a=2或b=2也不合法(全部分数只有一个1)然后对a进行推理,由于相邻盘得分相差2,因此小的分数可以转换为大的分数,即 {2i-1,2j-1}可以转换为 {2(i-1)-1,2(j+1)+1},例如{3,5}可以转换为{...原创 2018-08-04 10:40:47 · 230 阅读 · 0 评论 -
51nod-1358 浮波那契
思路:矩阵快速幂,对于3.4可乘以5变成17,同时n*=5, FB(n)=FB(n-5)+FB(n-17), 而n<=20时 FB(n)=1。 关键是对于初始化矩阵的构造,即e[m][m]*FB[n-1,n-2,...,n-17]=FB[n,n-1,...,n-16]e[][]=就可以满足条件Code :#include<iostream>#include&l...原创 2018-08-09 09:04:16 · 243 阅读 · 0 评论 -
51nod-1388 六边形平面
思路:DFS。为中间的'X'所相邻的'X',较易推出要涂上所有'X'最多只需要3种颜色(1,2,3)。遍历整个图,在遇到'X'时DFS所有相邻的'X'并标记,用d[x][y][k]来记录点(x,y)处颜色k不能够使用,d[x][y][0]用于保存(x,y)处所使用的颜色在DFS(x,y)时应该先对与点(x,y)相邻的'X'进行处理使其不能够使用颜色d[x][y][0]。例如下图 由右...原创 2018-08-09 20:49:55 · 255 阅读 · 0 评论 -
51nod-1391 01串
思路:贪心+前缀和 利用预处理计算出以字符串S[i]为中断点时,往前0比1多的最大长度以及往后1比0多的最大长度,这样遍历S即可得到最长子串长度。求S[i]时往前时0比1多的最大长度 Len,可先求前缀和,将‘1’作为1,‘0’作为-1处理, 当前缀和 l[i]=k,要0比1多,当 k<0时len=i+1, 当 k>=0时 则需要找到最早满足l[i]-l[j]<...原创 2018-08-06 10:24:15 · 341 阅读 · 0 评论 -
51nod-1153 选择子序列
思路:这题的解题思路十分巧妙,看了大佬的思路,由代码来谈谈个人的理解Code:/*题目要求的是a[l-r]间比两端小的元素,因此可以用一个单调栈(小的先出栈)来求解,*/#include<iostream>#include<stack>using namespace std;struct node{ int x; int len;};in...原创 2018-08-01 16:28:31 · 336 阅读 · 0 评论