HDU 2516 取石子游戏
2012-04-18 16:05
260 查看
这是一道Fibonacci’s Game (斐波那契博弈)
斐波那契博弈模型,是ACM题中常见的组合游戏中的一种,大致上是这样的:
有一堆个数为 n 的石子,游戏双方轮流取石子,满足:
1. 先手不能在第一次把所有的石子取完;
2. 之后每次可以取的石子数介于 1 到对手刚取的石子数的 2 倍之间(包含 1 和对手刚取的石子数的 2 倍)。
约定取走最后一个石子的人为赢家,求必败态。
View Code
斐波那契博弈模型,是ACM题中常见的组合游戏中的一种,大致上是这样的:
有一堆个数为 n 的石子,游戏双方轮流取石子,满足:
1. 先手不能在第一次把所有的石子取完;
2. 之后每次可以取的石子数介于 1 到对手刚取的石子数的 2 倍之间(包含 1 和对手刚取的石子数的 2 倍)。
约定取走最后一个石子的人为赢家,求必败态。
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( ) { const int t = 0x7fffffff ; int f[50] ={ 1 ,1 },i,n; for( i = 2; i < 47 ; i ++) { f[i] = f[i-1] + f[i-2];//printf( "%d %d\n",f[i] ,t ); // if( f[i] < 0 ) break; } while( scanf( "%d" ,&n ),n ) { for( i = 1 ; i < 47; i++ ) { if( f[i]==n ) break; } if( i != 47 ) puts("Second win"); else puts( "First win" ); } // system( "pause" ); return 0; }
相关文章推荐
- hdu 2516 取石子游戏
- hdu---2516取石子游戏
- HDU 2516 取石子游戏 (斐波那契博弈)
- HDU 2516 取石子游戏 (斐波那契博弈)
- hdu 2516 取石子游戏
- HDU 2516 取石子游戏 斐波那契博弈
- hdu 2516 取石子游戏
- HDU-2516-取石子游戏【 斐波那契博弈】
- HDU 2516 取石子游戏( FIB博弈 )
- HDU 2516 取石子游戏(斐波那契博弈)
- HDU 2516 取石子游戏 (博弈论)
- HDU 2516 取石子游戏 Fib博弈
- HDU 2516 取石子游戏
- HDU 2516 取石子游戏(斐波那契博弈)
- 【博弈】 HDU 2516 取石子游戏 斐波那契博弈
- HDU 2516 取石子游戏(斐波那契博弈)
- hdu 2516 取石子游戏 (博弈)
- HDU-2516 取石子游戏
- hdu 2516 取石子游戏 (博弈)
- hdu 2516 取石子游戏(组合游戏)