组合数学
文章平均质量分 78
utoppia
这个作者很懒,什么都没留下…
展开
-
hdu 1695 GCD
HUD1695神奇的容斥原理。用到的知识点就是求[1,L]中和n互质的个数。其实就是将n因数分解,然后对于一个质因子p,[1,L]中和P互质的就有L/p个。容斥解决。#include#include#include#include#include#include#include#include#include#includeusing namespace s原创 2013-08-03 11:30:11 · 608 阅读 · 0 评论 -
Ural 1180 Stone Game
Ural 1180超级入门级别的组合游戏。Alice赢的可能就是这个数不是3的倍数,否则就是必败态。当然,一切都是从最简单的开始。开始Game时代。。。CODE:#include#include#include#include#include#include#include#include#include#includeusing namespa原创 2013-08-07 00:21:07 · 632 阅读 · 0 评论 -
Ural 1023. Buttons
Ural 1023我们知道n个石子,每次取1-L个那么n是必败态就是 n%(L+1)==0;于是员问题就等价于求n的大于3的约数,然后将这个数减一就是答案。CODE:#include#include#include#include#include#include#include#include#include#includeusing namespa原创 2013-08-07 00:35:48 · 805 阅读 · 0 评论 -
Ural 1195 Ouths and Crosses
Ural 1195题目大意就是给定一个3X3的格子问其状态是否是必胜态。因为数据量小的可怜,我们直接暴力搜索就可以搞定。CODE:#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define F原创 2013-08-07 12:16:05 · 892 阅读 · 0 评论 -
Ural 1087. The Time to Take Stones
Ural 1087我们需要知道一些博弈论的小知识。我们用win[i]来表示i的状态;win[i]=1表示比胜态win[i]=0表示必败态那么win[i] = 0 当且仅当 其所有的子状态 win[j] = 1; win[i] = 1 当且仅当 至少有一个子状态 win[j]=0;我们用类似dp的方法求出win[n]就解决了这个问题。原创 2013-08-07 10:45:56 · 730 阅读 · 0 评论 -
Ural 1465 Pawn Game
Ural 1465Nim游戏变形,sg算子的应用吧。我们知道这样的棋盘分布唯一的转移状态只有三种形式,然后暴力求出sg值就行。但是题目的数据量太大,我们大表发现其实这里边室友循环的,于是就可以解决这些问题了。CODE:#include#include#include#include#include#include#include#include#incl原创 2013-08-08 01:04:45 · 926 阅读 · 0 评论 -
博弈论大作战之 PART1
HDU 1047:dp一下#include#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#define DOR(i,a,b) for(int (i)原创 2013-08-14 20:35:53 · 789 阅读 · 0 评论 -
博弈论大作战之 PART2
HDU1536 S-Nim 先暴力预处理所有的值得sg值,然后就是一样的。#include#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#原创 2013-08-16 20:07:13 · 742 阅读 · 0 评论