【UVA 10561】 Treblecross|博弈论|SG函数
来源:互联网 发布:网络数据流量检测工具 编辑:程序博客网 时间:2024/05/30 05:21
注意SG函数的定义
注意最后ans!=0的判定
#include <cstdio>#include <cstring>int sg[210],q[210],top,ln;char s[210];bool b[210];int get_sg(int x){memset(b,false,sizeof(b));for(int i=3;i<=5;i++)if(x>=i)b[sg[x-i]]=true;for(int i=1;i<=x-5;i++)b[sg[i]^sg[x-5-i]]=true;for(int i=0;i<=200;i++)if(!b[i])return i;}char tmp[210];bool ok(int now){if(s[now]=='X') return false;for(int i=1;i<=ln;i++) tmp[i]=s[i];tmp[now]='X';for(int i=1;i+2<=ln;i++)if(tmp[i]=='X'&&tmp[i+1]=='X'&&tmp[i+2]=='X')return true;for(int i=1;i<=ln;i++){if(i+1<=ln&&tmp[i]=='X'&&tmp[i+1]=='X') return false;if(i+2<=ln&&tmp[i]=='X'&&tmp[i+2]=='X') return false;}for(int i=1;i<=ln;i++)if(tmp[i]=='X')for(int j=-2;j<=2;j++)if(i+j>=1&&i+j<=ln&&tmp[i+j]!='X')tmp[i+j]='*';int ans=0,last=1,r;while(last<=ln){while(tmp[last]!='.'&&last<=ln) last++;r=last;while(tmp[r+1]=='.'&&r+1<=ln) r++;if(last>ln||r>ln) break;ans^=sg[r-last+1];last=r+1;}if(ans==0) return true;return false;}int main(){sg[0]=0,sg[1]=1,sg[2]=1,sg[3]=1;for(int i=4;i<=200;i++) sg[i]=get_sg(i);int T;scanf("%d",&T);while(T--){scanf("%s",s+1);ln=strlen(s+1);top=0;for(int i=1;i<=ln;i++) if(ok(i)==true) q[++top]=i;if(top==0) printf("LOSING\n\n");else{printf("WINNING\n");for(int i=1;i<top;i++)printf("%d ",q[i]);printf("%d \n",q[top]);}}return 0;}
0 0
- 【UVA 10561】 Treblecross|博弈论|SG函数
- uva 10561 Treblecross (SG函数)
- UVA 10561 - Treblecross(博弈SG函数)
- SG函数(Treblecross游戏,UVA 10561)
- UVA - 10561 Treblecross (博弈数学&SG函数)
- UVA 10561 Treblecross 组合游戏/SG定理
- UVA - 10561 Treblecross (SG定理)
- (SG博弈)uva 10561 - Treblecross
- [UVA10561] Treblecross && 博弈 SG函数
- uva 10561 Treblecross(博弈)
- uva 10561 - Treblecross(Nim)
- [UVa 10561]Treblecross游戏
- uva 10561 treblecross
- UVA 11892 浅谈无SG函数纯分析博弈论
- HDU_1536 博弈论-sg函数
- 博弈论之sg函数
- SG函数(博弈论)
- 博弈论中的SG函数
- ExpandableListView(下拉列表)实现
- 在反向代理中添加例外
- Android:Layout_weight的深刻理解
- servlet下载文件到本地
- SpringMVC中hibernate中一对多关系,懒加载转JSON问题
- 【UVA 10561】 Treblecross|博弈论|SG函数
- 数据中心网络三大热门技术
- Dialog中EditText不弹出键盘解决方案
- Java 多线程线程池 - 线程池原理
- iOS之简单瀑布流的实现
- wsdl4j 解析 wsdl
- JavaScript中的原型
- 合并两个有序链表
- Android Vitamio 播放器