欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

博弈游戏(博弈论)

程序员文章站 2022-07-13 11:51:06
...

博弈游戏(博弈论)

  • 如果每次取1~3,那么4就是必败点,
  • 因为4不管怎么取,下一个人都能赢
  • 以此类推,5,6,7会是必胜点,因为下次只要走到4
  • 就会让对方进入必败点
  • 那如果是8,下次不管怎么走,都会变成必胜点,所以在这个点是必败点
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
#include<math.h>
#include<string>
#include<string.h>
#include<sstream> 
#include<set>
#include<map>
using namespace std;
int a[1005];
int main() {
    ios::sync_with_stdio(false);
    int n, m;
    int c;
    cin >> c;
    while(c --){
    	cin >> n >> m;
    	a[0] = 2;
    	for(int i = 1; i <= n; i ++){
    		a[i] = 2;
    		for(int j = i - 1; j >= i - m; j --){
    			if(j < 0) continue;
    			if(a[j] == 2) {
    				a[i] = 1;
    				break;
				}
			}
		}
		if(a[n] == 1) cout << "first" << endl;
		else cout << "second" << endl;
	}
	return 0;
}