06 2017 档案

摘要:如果x>1&&y>1,可以简化到其中一个为1的情况,这是等价的,当其中一个为1(假设为x),另一个一定能执行y-1次, 这是一个贪心问题,把所有的执行次数加起来比较就能得到结论 #include<map> #include<set> #include<cmath> #include<queue> # 阅读全文
posted @ 2017-06-23 11:50 walfy 阅读(272) 评论(0) 推荐(0) 编辑
摘要:阶梯博弈原理参考:http://www.cnblogs.com/jiangjing/p/3849284.html 这题计算每两个之间的间隔就行了,如果是奇数个就把第一个前面的看作一个,偶数个就是两个点之间的间隔 m==1的时候特判,因为能一步就胜,m==2的情况第一个间隔要加1,因为当第一个间隔为0 阅读全文
posted @ 2017-06-23 10:21 walfy 阅读(180) 评论(0) 推荐(0) 编辑
摘要:先画一下N=2的情况,先手胜,再画一下N=3的情况,先手胜,所以大胆的猜测,无论N=多少,先手胜!! 这也能A真是个奇迹 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vect 阅读全文
posted @ 2017-06-22 19:01 walfy 阅读(186) 评论(0) 推荐(0) 编辑
摘要:参考博客:http://blog.csdn.net/sun897949163/article/details/50609070 特判一下m=1的情况,然后m!=1时,无论对手取多少,我只要取的让这条链分成两个相同个数的子链就行了(之后按巴什博弈来处理),当然,如果先手能一次取完,那就后手必输 #in 阅读全文
posted @ 2017-06-22 18:24 walfy 阅读(174) 评论(0) 推荐(0) 编辑
摘要:和之前一道题是类似的,输出第一步走的方法,遍历数组找到a[i]^s<a[i]的那个数a[i]-a[i]^s就是要取的数 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vecto 阅读全文
posted @ 2017-06-22 16:11 walfy 阅读(166) 评论(0) 推荐(0) 编辑
摘要:一眼就能看出来的巴什博弈,只是要输出第一步取的值,如果m>n+1,输出m%(n+1),否则输出m到n,因为这是第一步 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector 阅读全文
posted @ 2017-06-22 15:56 walfy 阅读(143) 评论(0) 推荐(0) 编辑
摘要:裸题,直接套公式 巴什游戏只是换了一个说法而已 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert 阅读全文
posted @ 2017-06-22 15:32 walfy 阅读(145) 评论(0) 推荐(0) 编辑
摘要:挺像巴什博弈的,直接递推就能找到规律了,从2开始到9,s win,10到18,o win,18到162,s win,一直向下推进 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include< 阅读全文
posted @ 2017-06-22 13:24 walfy 阅读(383) 评论(0) 推荐(0) 编辑
摘要:超级坑的水题!!!想了两天没一点思路,看了题解第一段话就做出来了 刚开始一直在想找到通项就是例如an*10^n+...+a0*10^0-an-...-a0>=s,然后从这个里面找到规律,结果走进死胡同了 Let's prove that if x is really big, then x + 1  阅读全文
posted @ 2017-06-21 21:49 walfy 阅读(152) 评论(0) 推荐(0) 编辑
摘要:输的话输出0,赢就输出1并且输出第一步走后的数目 威佐夫博弈判断胜负 原理及常见题型求法: http://blog.csdn.net/y990041769/article/details/21694007 #include<map> #include<set> #include<cmath> #in 阅读全文
posted @ 2017-06-20 21:37 walfy 阅读(197) 评论(0) 推荐(0) 编辑
摘要:给n个圆要么包含,要么相分离,没有两个公共点,当成一棵树,把包含的面积大的放在上面 如图最上面的par记为-1,level记为0,当par 1||level==1时就加否则减, 就是第一,二层先加,第三层减,然后后面的一直交替就行了 #include<map> #include<set> #incl 阅读全文
posted @ 2017-06-18 23:29 walfy 阅读(126) 评论(0) 推荐(0) 编辑
摘要:先打个表冷静一下 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<ioma 阅读全文
posted @ 2017-06-17 17:38 walfy 阅读(126) 评论(0) 推荐(0) 编辑
摘要:需要变形的并查集,这题错了好久,一直没a掉,终于在重写第三次的时候a了 先保存数据,把不需要拆分的边合并,逆向计算,需要拆分时就合并,之前不知道为啥写搓了,tle好久 #include<map> #include<set> #include<cmath> #include<queue> #inclu 阅读全文
posted @ 2017-06-11 18:43 walfy 阅读(186) 评论(0) 推荐(0) 编辑
摘要:又是找规律,无语了,说好的博弈呢,搞了半天的sg函数没有一点头绪 当n%(p+q)==0时,先手win,第一次取q个,以后每次,后手取k个,先手就取p+q-k个,最后,后手必取q个 当n=(p+q)*k+s(p<s<q)时,先手win,第一次取t(s-p<t<s)个,以后每次,后手取k个,先手就取p 阅读全文
posted @ 2017-06-08 14:49 walfy 阅读(231) 评论(0) 推荐(0) 编辑
摘要:刚开始想用sg函数做,想了半天没一点思路啊。 原来这是一个新题型,斐波那契博弈 斐波那契博弈模型:有一堆个数为 n 的石子,游戏双方轮流取石子,满足:1. 先手不能在第一次把所有的石子取完;2. 之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。约定取走最后 阅读全文
posted @ 2017-06-08 13:49 walfy 阅读(216) 评论(0) 推荐(0) 编辑
摘要:刚开始因为没注意到f是从0开始的导致wa了几次,f遍历的时候从0到f【j】<=i 这个题只有一个子情况,求出sg值直接判断就好了 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include< 阅读全文
posted @ 2017-06-08 12:53 walfy 阅读(192) 评论(0) 推荐(0) 编辑
摘要:就是要搞清楚nim博弈的原理 特别是证明方法,这一题就是第二条证明方法得出来的结论,只要a[i]^k<a[i]输出就行了 证明如下: 根据定义,证明一种判断position的性质的方法的正确性,只需证明三个命题: 1、这个判断将所有terminal position判为P-position;2、根据 阅读全文
posted @ 2017-06-07 19:46 walfy 阅读(136) 评论(0) 推荐(0) 编辑
摘要:#include<map> #include<set> #include<cmath> #include<queue> #include<stack> #include<vector> #include<cstdio> #include<cassert> #include<iomanip> #inc 阅读全文
posted @ 2017-06-07 17:04 walfy 阅读(266) 评论(1) 推荐(1) 编辑
摘要:巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。 结论:只要不能整除,那么必然是先手取胜,否则后手取胜。 #include<map> #include<set> #include<cmath> #include<queue> #include 阅读全文
posted @ 2017-06-07 16:19 walfy 阅读(129) 评论(0) 推荐(0) 编辑
摘要:参考博客 https://hrbust-acm-team.gitbooks.io/acm-book/content/game_theory/wei_zuo_fu_bo_yi.html 满足 ,后手必胜,否则先手必胜。 #include<map> #include<set> #include<cmat 阅读全文
posted @ 2017-06-07 16:17 walfy 阅读(178) 评论(0) 推荐(0) 编辑
摘要:求最小割集 dinic处理后用dfs对所有点进行标记,遍历整个联接边,起点访问了,终点没访问或者起点没访问,终点访问了就是最小割集之一 #include<map> #include<set> #include<cmath> #include<queue> #include<stack> #inclu 阅读全文
posted @ 2017-06-07 13:21 walfy 阅读(136) 评论(0) 推荐(0) 编辑
摘要:刚开始看这题太长了就放着,后来做了之后才发现并不难,就是构造图有点麻烦 一开始写了180行@。@结果tle了,后来想到用map直接访问的话可能会快点,就不用每次循环了 #include<map> #include<set> #include<cmath> #include<queue> #inclu 阅读全文
posted @ 2017-06-07 10:11 walfy 阅读(132) 评论(0) 推荐(0) 编辑
摘要:最近博客断更了一段时间啊,快期末了,先把这个专题搞完再说 最小割=最大流 拆点方法很重要,刚开始我拆点不对就wa了,然后改进后tle,应该是数组开小了,一改果然是 #include<map> #include<set> #include<cmath> #include<queue> #include 阅读全文
posted @ 2017-06-06 18:48 walfy 阅读(287) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示