博弈
ijbuhv
这个作者很懒,什么都没留下…
展开
-
hdu1847Good Luck in CET-4 Everybody! 博弈
//可以找到必败点是3,对于任意数我们可以通过减去1或2得到3的倍数,而三的倍数//不能一次取完//在做的时候找到了必败点,但没想到三的倍数,所以只好苦逼的枚举所有的必胜和必败点#include#include#includeusing namespace std ;const int maxn = 1010 ;int pos[maxn] ;int main()原创 2015-04-10 20:55:03 · 636 阅读 · 0 评论 -
hdu5229 ZCC loves strings 博弈
//很容易可以判断当两个字符串相等或者长度相加为奇数时第一个赢//用map存入每一个字符串标号,对应找出每一个字符串有多少个以及其长度是奇数还是偶数//则很容易求得答案#include#include#include#includeusing namespace std ;const int maxn = 200010 ;typedef __int64 ll ;原创 2015-05-17 13:41:34 · 673 阅读 · 0 评论 -
hdu1850Being a Good Boy in Spring Festival NiM博弈
//当该点时p-position时,先手输//当该点为n-position时,即a1^a2......^an = k时;//先手的第一步是使得a1^a2^.......^an^k = 0;//那么只要ai^k #include#include#includeusing namespace std ;const int maxn = 10000010 ;int n原创 2015-04-09 22:16:33 · 489 阅读 · 0 评论 -
hdu2149Public Sale 博弈水题
#include#include#includeusing namespace std ;int main(){ int n , m; while(~scanf("%d%d",&m , &n)) { if((n >= m)) for(int i = m;i printf("%d%c" , i原创 2015-04-09 21:17:00 · 658 阅读 · 0 评论 -
hdu 1846Brave Game 博弈论
//两个人,如果n为m+1的倍数,那么第一个人无论取什么数,第二个人只需要使得两个人取得数等于m+1就行,所以第二个人//一定会赢//如果n不是m+1的倍数,那么第一个人只需要取n%(m+1)就行,然后后面的情况和上面一样#include#include#includeusing namespace std ;int main(){ int n , m ;原创 2015-04-09 19:22:26 · 661 阅读 · 0 评论 -
hdu2147kiki's game 博弈
//101010101//000000000//101010101//000000000//101010101//000000000//101010101//000000000//101010101//当m , n在1时,是zz赢//因为起点在1点时,kiki走一步肯定是走到0处,而zz一定又能走到1//故左下角的1肯定是zz走到//如果m,n在0,原创 2015-04-09 20:59:36 · 563 阅读 · 0 评论 -
hdu4764 Stone 巴什博弈
//先到n-1的赢#include#include#includeusing namespace std ;int main(){ int n , k; while(scanf("%d%d",&n,&k) , n+k) { if((n-1)%(k+1) == 0) printf("Jiang\n") ; e原创 2015-04-11 14:35:07 · 682 阅读 · 0 评论 -
hdu3951Coin Game 博弈
//如果在第一个人拿完以后,第二个人能使得局面是对称的,那么第二个人赢#include#include#includeusing namespace std ;int main(){ int n , k; int T ; scanf("%d",&T) ; int cas = 0; while(T--) {原创 2015-04-11 15:19:29 · 579 阅读 · 0 评论 -
hdu1730Northcott Game NIM博弈
//必胜局面是所有的黑子和白子都相邻,//本题想要达到黑子和白子之间都相邻,即走完它们之间的所有空格//就相当于一个NIM博弈#include#include#includeusing namespace std ;int main(){ // freopen("in.txt","r",stdin) ; int n , m ; int t原创 2015-04-11 13:33:49 · 541 阅读 · 0 评论 -
hdu1527取石子游戏 威佐夫博弈
//ak =[k(1+√5)/2],bk= ak + k (k=0,1,2,...n 方括号表示取整函数)//即(bk-ak)==ak*(√5-1)/2 或 (bk-ak)+ 1==ak*(√5-1)/2即输#include#include#include#includeusing namespace std ;int main(){ int n , m;原创 2015-04-10 22:49:30 · 616 阅读 · 0 评论 -
hdu5011Game nim博弈
//可以看出是nim博弈//P-position和N-positon还是和原来的nim博弈一样//假设P-position的情况面临d^c = 0 ;其中d为其选择要操作的数//c为除了这个数之外的所有数 //减去一个数后d<c如果将其分为a , b 两部分//a+b = c 但 a^b^c != 0因为a^b != c#include#include#includeusing原创 2015-09-08 22:14:53 · 351 阅读 · 0 评论