Nim博弈 因为移动到第0阶会消失 所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶 递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜 所以这个必胜条件就是奇数阶上的子全部为0 拿奇数阶进行Nim博弈即可 1 #include<stdio.h> 2 int main(){ ...
分类:
其他好文 时间:
2020-01-27 17:40:15
阅读次数:
67
因为成环 所以可以枚举第1只与第n只喂的次数 然后第1只和第2只的次数就固定了,以此类推,则所有宝可梦喂的次数都固定了 最后处理完检查是否全为0,不是则进行下一次枚举,是则直接输出Yes 如果所有枚举均不成立,输出No 1 /* 2 Written By. StelaYuri 3 On 2020/0 ...
分类:
其他好文 时间:
2020-01-27 17:20:29
阅读次数:
66
将辈分差距转为数字 例如 A 是 B son A=B-1 A 是 B grandfather A=B+2然后编号1数字设置为0,建图bfs 最后搜索编号2到100是否存在>0的数即可 1 /* 2 Written By. StelaYuri 3 On 2020/01/15 4 */ 5 #inclu ...
分类:
其他好文 时间:
2020-01-27 17:16:35
阅读次数:
70
可得应当优先寻找最大的2^n-1这个数 如果l的位数不等于r的位数,那么这个数 2^n-1 就是最优解(每一位全为1) 如果l和r的位数相同,先看r是否符合 2^n-1,符合直接返回,不符合的话拆除最高位继续寻找 例如 l=10 r=14 即1010~1110 B l和r位数相同且r不全为1 则可以 ...
分类:
其他好文 时间:
2020-01-27 17:12:31
阅读次数:
43
从小到大排序后 先固定一遍,另外两边递增查找 即固定 i,j=i+1,k=j+1 然后让k递增到 a[i]+a[j]<=a[k] 时 此时不能凑成一个三角形 答案增加 k-1-j 组 此时不需要重置 k=j+1 因为 j++ 后 a[j] 会变大 那么在 j~k 之间的所有木棍长度均能再次满足这种 ...
分类:
其他好文 时间:
2020-01-27 17:10:02
阅读次数:
55
类似于1213取水 可以把空投当作第0个城市 最后将0~n的所有城市跑最小生成树 1 /* 2 Written By StelaYuri 3 */ 4 #include<iostream> 5 #include<algorithm> 6 using namespace std; 7 struct r ...
分类:
其他好文 时间:
2020-01-27 09:43:38
阅读次数:
80
寻找从i到X,再从X到i的最短路 可以在正向图中从X开始跑一遍最短路,每个点的距离dis1[i]当作从X回到点i的距离 再将图反向从X再跑一遍,每个点的距离dis2[i]当作从i到点X的距离 最后搜索dis1[i]+dis2[i]值最大的输出 1 /* 2 Written By StelaYuri ...
分类:
其他好文 时间:
2020-01-27 09:41:33
阅读次数:
63
因为从俯视图看,输入输出的视角是从右下方看向左上方的 所以左上角的正方体最有可能被其他正方体挡住 立体上,底部的正方体最有可能被顶部的正方体挡住 所以绘图应该从后往前,从下往上绘制 剩下的就是一大堆计算和判断了 采用的是先绘制出规范的图再与输入的图做对比的方式 1 /* 2 Written By S ...
分类:
其他好文 时间:
2020-01-27 09:32:15
阅读次数:
80
注意到N最大只有1e6,但是xy最大有2e8,直接模拟2e8会超时 所以可以将1e6个区间离散化后模拟,模拟时的最坏情况为2e6满足题意 1 /* 2 Written By StelaYuri 3 */ 4 #include<iostream> 5 #include<algorithm> 6 usi ...
分类:
其他好文 时间:
2020-01-27 09:29:04
阅读次数:
61
可以将相同的人数分块存在数组gp中先 例如RRGGGRBBBBRR 则gp[1~5]={2,3,1,4,2} 首先可以知道,如果要让没有相邻的相同,只需要每个gp[i]/2向下取整即可得出最少需要改变的个数 例如RGGGR,只看G,只需要改变中间的G即可 例如RGGGGR,只看G,可以选择改变1和3 ...
分类:
其他好文 时间:
2020-01-27 09:19:00
阅读次数:
75