随笔分类 -  数学 - 博弈论

摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3895 看了博客:https://blog.csdn.net/popoqqq/article/details/43989101 因为只是找有无必胜策略,所以可以搜索求解; 注意记忆化数组不必清空 阅读全文
posted @ 2018-08-02 10:50 Zinn 阅读(207) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3105 首先,要先手必胜,就不能取后让剩下的火柴中存在异或和为0的子集,否则对方可以取成异或和为0的状态,那么必败; 可以贪心地从大到小排序,如果一堆火柴可以被之前的一些火柴堆(基)异或表出,那 阅读全文
posted @ 2018-07-02 20:13 Zinn 阅读(173) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P4136 每个人有足够聪明,一定会把图走满; 所以n为偶数先手胜,n为奇数后手胜。 代码如下: 阅读全文
posted @ 2018-06-06 21:55 Zinn 阅读(160) 评论(0) 推荐(0)
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1089 f[d]为深度小于等于d的树的个数; 从根节点出发,有n个子树,乘法原理可以得到 f[d] = f[d-1] ^ n + 1 ,加1是因为也可以没有根节点; 需要高精度,直接重载运算符十 阅读全文
posted @ 2018-06-04 18:55 Zinn 阅读(132) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2148 先打表找个规律: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int sg[25][25]; voi 阅读全文
posted @ 2018-05-24 22:50 Zinn 阅读(261) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P2575 第一次用SG函数解决问题,有许多不熟练的地方; 试图按自己的理解写一个dfs,结果错了(连题都没读对,以为是像跳棋一样跳),这样的话用dfs从左往右推就不行了呢; 附上自己的错误尝试: #include<i 阅读全文
posted @ 2018-05-24 00:22 Zinn 阅读(222) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1199 仔细想想,两方都拿不到每个武将的配对中最大的; 本来想的是如果有武将a,b,对应最大ma,mb,次大ca,cb,那么自己选了a,电脑选了mb,接下来自己选b,若mb<ca,则电脑选了ca,自己就可以选mb, 阅读全文
posted @ 2018-05-22 18:55 Zinn 阅读(197) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1290 只要出现n>=2*m,就可以每次把较大的数控制在较小的数的一倍与二倍之间,则控制了对方的走法; 每次取后两个数大小交换,这时可能出现整除,而上述方法可以保证每次可能出现整除时都轮到自己,所以必胜。 代码如下 阅读全文
posted @ 2018-05-22 18:21 Zinn 阅读(127) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1247 可以知道必败局面为n[1]^n[2]^...^n[k]=x=0; 而若x不等于0,则一定可以取一次使其变为0,所以此时为必胜; 取火柴数即为n[i]^x,取掉后异或和变为0; 因为取火柴数为正数,所以要n[ 阅读全文
posted @ 2018-05-22 17:48 Zinn 阅读(172) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1288 分析一下,最优走法就是一下把边权走成0; 所以只要起点到左右最近的两条0边中有一个距离为奇数,则先手必胜,否则必败。 代码如下: 阅读全文
posted @ 2018-05-21 22:17 Zinn 阅读(137) 评论(0) 推荐(0)