取球游戏

来源:互联网 发布:淘宝客贷款在哪里申请 编辑:程序博客网 时间:2024/05/24 06:30

题目大意:

有n个球n<=1000,甲乙两人轮流取,只能取1,3,7,8个,谁最后取完全部的球输,甲先取,都采取最好的策略,问甲输赢?

找出必胜和必败态之一即可,

如果有1个球,为必败态

2个球,为必胜态,因为我只要拿走1个球,就转化成了必败态

3个球,必败态,因为无论我拿走1个或者是3个都转化成了必胜态

4个球,必胜态,因为只要拿走1个球就转化成了必败态

...

...

...

#include <iostream>using namespace std;int main(){freopen("C:\\in.txt","r",stdin);int flag[1001]={0};int b[]={1,3,7,8};int T;scanf("%d",&T);while(T--){int num;scanf("%d",&num);for(int i=2;i<=num;i++)for(int j=0;j<4&&b[j]<i;j++)if(flag[i-b[j]]==0){flag[i]=1;break;}printf("%d\n",flag[num]);}return 0;}


0 0
原创粉丝点击