取球游戏
来源:互联网 发布:淘宝客贷款在哪里申请 编辑:程序博客网 时间: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