程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 2484-A Funny Game(對稱博弈)

POJ 2484-A Funny Game(對稱博弈)

編輯:C++入門知識

POJ 2484-A Funny Game(對稱博弈)


題目鏈接:點擊打開鏈接

題意:n個數 編號1-n 圍成一個環,兩個人輪流取,每次只能取相鄰的兩個或只取一個 ,不能取者敗。

考慮這樣一個問題,如果不是一個環而是一條線,即從1-n成一行排列,這樣的話先手只要取中間的兩個或一個構成左右個數相等(左右對稱),那麼先手就能立於不敗之地(簡單的說就是不管對手取哪一邊,先手只要在另一邊按照同樣的方式取就能獲勝)。

但這個問題是一個環,考慮特殊情況,當環的長度小於3的時候,先手必勝(直接全部拿走),但大於等於3的時候,任取其中一個就可以破環為線(鏈),然後因為線的時候先手必勝,所以此題答案是先手必敗。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define maxn 10000002
#define _ll __int64
#define ll long long
#define INF 0x3f3f3f3f
#define Mod 10000007
#define pp pair
#define ull unsigned long long
using namespace std;
int n;
int main()
{
	while(scanf("%d",&n)&&n){
        if(n<3)puts("Alice");
		else puts("Bob");
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved