2012年7月1日

威佐夫博弈 hdu 2177

摘要: 威佐夫博弈基本思想: 两堆物品,可从一堆中取任意,也可从两堆中同时取相同多个。 该算法存在奇异状态:处在奇异状态必败;1. 奇异状态的求法:a0=0;b0=0;而后,ak=前未出现过的最小自然数;bk=ak+k; 可得出奇异状态。2. 判断是否为奇异状态:有一状态(a,b) if a=int((b-a)*(1+sqrt(5))/2); 则表明处于奇异状态。 3. 怎样转化成奇异状态:① a=b时,直接转化成(0,0); ②k=b-a;if(a-ak)=(b-bk);(a-ak)>0,(b-bk)>0 则转化为(a-(a-ak),b-(b-bk)); ③ 在ak中可以找到与a相等的, 阅读全文

posted @ 2012-07-01 20:54 yumao 阅读(790) 评论(0) 推荐(0)

尼姆博弈 hdu 2176

摘要: 尼姆博弈基本思想: 两人从n堆物品中取任意个,先取完者胜。 即将n堆物品的数量异或,得到的值如果为0,则先手败,反之先手胜。 如果要求先手在胜的条件下,到奇异局势的方法数,则判断异或的值与每一堆原值异或后(结果应该表示该堆没有参加异或时的异或值)与原值比较大小,如果小于,则方法数加一。且对应的方法后,该堆的数目应变为异或的值与每一堆原值异或的值。Descriptionm堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也可以从有9个的中那一堆取走9个 阅读全文

posted @ 2012-07-01 20:33 yumao 阅读(680) 评论(0) 推荐(0)

巴什博弈 hdu 2149

摘要: 巴什博弈基本思想: 两人在限制(1~n)的条件下,谁先达到m谁胜出。 则分情况讨论: 1. n>=m时;先手胜出;2. m==n+1时,先手败;3. m%n+1!=0时,先手胜; 4. m%n+1=0,先手败; 且在第三种情况时, 如果后手取k,则先手取n+1-k。Description虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有L 阅读全文

posted @ 2012-07-01 20:18 yumao 阅读(264) 评论(0) 推荐(0)

用STL实现优先队列

摘要: #include<iostream>#include<queue>using namespace std;struct node{ int a; int b; };struct cmp{ //reset operator for node bool operator ()(const node &c,const node &d){ return (c.a<d.a); //from high to low } };int main(){ int c[5]={3,1,12,6,5}; node b[5]; b[0].a=2; b[1].a=5; b[3 阅读全文

posted @ 2012-07-01 11:28 yumao 阅读(283) 评论(0) 推荐(0)

导航