邂逅明下 HDU - 2897(巴什博奕变形,打表找规律)

邂逅明下

HDU - 2897
题意:一堆硬币,从中每次取p~q个硬币(若剩下的硬币小于p, 就全取完),取走最后硬币的玩家输;
给出n个硬币,以及p,q,判断先手输赢;
#include 
#include 
#include 
#include 
using namespace std;
int win[65540];
int main(){
	int n, p, q;
	while(~scanf("%d%d%d", &n, &p, &q)){
		/*
		//打表过程: 
		memset(win,0, sizeof(win));
		for(int i=p+1; i<=n; i++){
			int k=p;
			while(k<=q){
				if(k>i) break;
				if(win[i-k]==0) win[i]=1;
				k++;
			}
		}
		for(int i=0; i<=n; i++){
			printf("i:%d   %s\n", i, (win[i]?"win":"lose"));
		}
		*/
		if(n%(p+q)<=p&&n%(p+q)>=1) printf("LOST\n");
		else printf("WIN\n");
	}
	return 0;
}


你可能感兴趣的:(博弈)