HDU 1730 Northcott Game
2012-04-20 19:34
239 查看
只是一道取石子游戏的变形题,刚开始我想着去打表,一直打不出后来画图就一下子清楚了;
我们来分析只有一行的情况:
我们知道只要黑白棋子之间有空格,只要谁先走就一定谁赢,因为先走者一定会走到与两个棋子之间没有空格的地方,这样才能保证他赢,我们看成取石子且石子只有一堆的情况;
那么多行时,我们就可以把两个棋子之间的空格看成有多少个石子,而行可以看成有多少堆,再利用Nim就可以解决问题了;
View Code
我们来分析只有一行的情况:
我们知道只要黑白棋子之间有空格,只要谁先走就一定谁赢,因为先走者一定会走到与两个棋子之间没有空格的地方,这样才能保证他赢,我们看成取石子且石子只有一堆的情况;
那么多行时,我们就可以把两个棋子之间的空格看成有多少个石子,而行可以看成有多少堆,再利用Nim就可以解决问题了;
View Code
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #include<set> #include<map> #include<vector> using namespace std; int main( ) { int n , m,a,b; while( scanf( "%d %d",&n,&m )==2 ) { int t = 0 ; for( int i = 0 ; i < n ; i ++ ) { scanf( "%d %d",&a,&b ); if( a < b ) { a ^= b; b ^= a; a ^= b; } t ^= ( a - b - 1 ); } if( t ) puts( "I WIN!" ); else puts( "BAD LUCK!" ); } //system( "pause" ); return 0; }
相关文章推荐
- 博弈论 HDU 1730 Northcott Game
- HDU 1730 Northcott Game (Nim博弈)
- hdu 1730 Northcott Game (nim博弈变形)
- HDU 1730 Northcott Game(nim博弈)
- hdu 1730 Northcott Game
- HDU 1730 Northcott Game (Nim博弈)
- hdu 1730 Northcott Game (Nim博弈)
- HDU 1730 Northcott Game (Nim博弈)
- hdu 1730 Northcott Game 博弈论
- HDU 1730 Northcott Game (Nim博弈)
- hdu1730 Northcott Game,Nim-sum
- hdu 1730 Northcott Game
- HDU 1730 Northcott Game (Nim博弈)
- (step 8.2.11)hdu 1730(Northcott Game——NIM游戏变形)
- HDU_1730 Northcott Game(博弈)
- HDU 1730 Northcott Game(Nim博弈变形)
- HDU 1730 Northcott Game (Nim博弈)
- HDU-1730 Northcott Game
- hdu 1730 Northcott Game
- hdu1730 Northcott Game(s-nim)