[SG函数] BZOJ1188: [HNOI2007]分裂游戏
来源:互联网 发布:smtp tls 端口 编辑:程序博客网 时间:2024/06/04 19:25
可以发现,一颗石子可以看作是一个独立的游戏。
#include<cstdio>#include<algorithm>using namespace std;const int maxn=105;int _test,n,allsg,a[maxn],sg[maxn],vis[maxn],clk,ans,ans1,ans2,ans3;int main(){ scanf("%d",&_test); while(_test--){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sg[n]=0; for(int i=n-1;i>=1;i--){ clk++; for(int j=i+1;j<=n;j++) for(int k=j;k<=n;k++) vis[sg[j]^sg[k]]=clk; for(int j=0;j<=100;j++) if(vis[j]!=clk){ sg[i]=j; break; } } ans1=ans2=ans3=ans=0; for(int i=n-1;i>=1;i--) if(a[i]) for(int j=n;j>=i+1;j--) for(int k=n;k>=j;k--){ a[i]--; a[j]++; a[k]++; allsg=0; for(int t=1;t<=n;t++) allsg^=(a[t]&1)*sg[t]; if(allsg==0){ ans++; ans1=i; ans2=j; ans3=k; } a[i]++; a[j]--; a[k]--; } printf("%d %d %d\n%d\n",ans1-1,ans2-1,ans3-1,ans); } return 0;}
阅读全文
0 0
- BZOJ1188 [HNOI2007]分裂游戏(SG函数)
- 【SG函数】BZOJ1188(HNOI2007)[分裂游戏]题解
- [SG函数] BZOJ1188: [HNOI2007]分裂游戏
- [BZOJ1188][HNOI2007]分裂游戏(博弈SG函数)
- BZOJ1188 [HNOI2007]分裂游戏(SG定理)
- bzoj1188: [HNOI2007]分裂游戏
- [BZOJ1188][HNOI2007]分裂游戏
- bzoj1188 [HNOI2007]分裂游戏
- bzoj1188: [HNOI2007]分裂游戏
- bzoj1188[HNOI2007]分裂游戏
- bzoj1188 [HNOI2007]分裂游戏
- BZOJ 1188 [HNOI2007]分裂游戏 SG函数
- bzoj 1188: [HNOI2007]分裂游戏 sg函数
- BZOJ1188: [HNOI2007]分裂游戏(洛谷P3185)
- bzoj 1188: [HNOI2007]分裂游戏(sg函数)
- bzoj1188 分裂游戏 博弈论
- 【BZOJ1188】分裂游戏,博弈
- 1188: [HNOI2007]分裂游戏
- css左右摆动动画
- ROS学习笔记2 消息发布与订阅
- Java 数组的复制
- Python学习笔记1
- 5.8
- [SG函数] BZOJ1188: [HNOI2007]分裂游戏
- 【NOIP2017】滚粗记
- ansible安装
- wex5页面交互三种方式(对话框)
- Multiplication Puzzle (poj 1651)
- node使用zlib模块通过管道压缩数据
- LDA主题模型
- Intellij IDEA 15中文输入框不跟随怎么办?
- Git 学习(一)