Brave Game
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 7488 Accepted Submission(s): 4976
Problem Description 十年前讀大學的時候,中國每年都要從國外引進一些電影大片,其中有一部電影就叫《勇敢者的遊戲》(英文名稱:Zathura),一直到現在,我依然對于電影中的部分電腦特技印象深刻。
今天,大家選擇上機考試,就是一種勇敢(brave)的選擇;這個短學期,我們講的是博弈(game)專題;是以,大家現在玩的也是“勇敢者的遊戲”,這也是我命名這個題目的原因。
當然,除了“勇敢”,我還希望看到“誠信”,無論考試成績如何,希望看到的都是一個真實的結果,我也相信大家一定能做到的~
各位勇敢者要玩的第一個遊戲是什麼呢?很簡單,它是這樣定義的:
1、 本遊戲是一個二人遊戲;
2、 有一堆石子一共有n個;
3、 兩人輪流進行;
4、 每走一步可以取走1…m個石子;
5、 最先取光石子的一方為勝;
如果遊戲的雙方使用的都是最優政策,請輸出哪個人能赢。
Input 輸入資料首先包含一個正整數C(C<=100),表示有C組測試資料。
每組測試資料占一行,包含兩個整數n和m(1<=n,m<=1000),n和m的含義見題目描述。
Output 如果先走的人能赢,請輸出“first”,否則請輸出“second”,每個執行個體的輸出占一行。
Sample Input
2
23 2
4 3
Sample Output
first
second
Author lcy
Source ACM Short Term Exam_2007/12/13
Recommend lcy | We have carefully selected several similar problems for you: 1847 1848 2147 1849 2149
簡單的博弈入門,巴什博弈。
參考代碼:
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<ctime>
#include<cstdlib>
#include<iomanip>
#include<utility>
#define pb push_back
#define mp make_pair
#define CLR(x) memset(x,0,sizeof(x))
#define _CLR(x) memset(x,-1,sizeof(x))
#define REP(i,n) for(int i=0;i<n;i++)
#define Debug(x) cout<<#x<<"="<<x<<" "<<endl
#define REP(i,l,r) for(int i=l;i<=r;i++)
#define rep(i,l,r) for(int i=l;i<r;i++)
#define RREP(i,l,r) for(int i=l;i>=r;i--)
#define rrep(i,l,r) for(int i=1;i>r;i--)
#define read(x) scanf("%d",&x)
#define put(x) printf("%d\n",x)
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<11
using namespace std;
int main()
{
int t,n,m;
read(t);
while(t--)
{
scanf("%d%d",&n,&m);
if(n<=m) printf("first\n");
else if(n%(m+1)) printf("first\n");
else printf("second\n");
}
}