[HNOI2007]分裂游戏 SG打表博弈
2024-09-05 03:00:25
结论:其实每一个巧克力都是一堆石子 它的石子数就是它到队尾的距离
打一个SG表即可
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int sg[];
int num[];
bool vis[];
int main() {
sg[] = ;
for (int i = ; i <= ; i++) {
memset(vis, , sizeof(vis));
for (int j = i - ; j >= ; j--) {
for (int k = j; k >= ; k--) {
vis[sg[j]^sg[k]] = ;
}
}
for (int j = ; j <= ; j++) {
if (!vis[j]) {
sg[i] = j;
break;
}
}
}
int TNT;
scanf("%d", &TNT);
while (TNT--) {
int ans = ;
int n;
scanf("%d", &n);
for (int i = ; i < n; i++) {
scanf("%d", &num[i]);
if (num[i] & ) {
ans ^= sg[n - i - ];
}
} int a1 = -, b1, c1;
int cnt = ;
for (int i = ; i < n - ; i++) {
if (num[i]) {
for (int j = i + ; j < n; j++) {
for (int k = j; k < n ; k++) {
if ((ans ^ sg[n - i - ]^ sg[n - j - ] ^ sg[n - k - ]) == ) {
cnt++;
if (a1 == -) {
a1 = i, b1 = j, c1 = k;
}
}
}
}
}
}
if (cnt == ) {
printf("-1 -1 -1\n");
} else {
printf("%d %d %d\n", a1, b1, c1);
}
printf("%d\n", cnt); }
}
最新文章
- .net core 中环境变量的配置
- 使用ScheduledExecutorService实现Timer
- iOS - Swift Set		集合
- 转:最值得学习阅读的10个C语言开源项目代码
- mysql备份工具 :mysqldump mydumper Xtrabackup 原理
- Apache 使用密码文件验证用户
- (三)Angularjs - 小实例
- [转载]Matlab中fft与fftshift命令的小结与分析
- Eclipse使用总结
- 自动生成getter,setter方法的插件lombok
- sass和compass实战 读书笔记(一)
- vue的传参方式和router使用技巧
- 练习2-1 Programming in C is fun!
- P1456 Monkey King
- Spring的介绍与搭建
- QT中QLineEdit的editingFinished()信号在按下回车时会触发两次的解决办法
- 转:nginx模块开发——handler(二)
- uniapp开发踩坑记录
- jQuery的基本使用
- mongodb中的_id的ObjectId的生成规则
热门文章
- python 创建虚拟环境(virtualenv)
- Unity3D 原来Unity比较新的版本支持中文
- leetcode1277 Count Square Submatrices with All Ones
- 最新 多益网络java校招面经 (含整理过的面试题大全)
- TF-IDF算法与余弦相似性
- Java面试 - == 和 equals 的区别?
- K8S从入门到放弃系列-(5)kubernetes集群之kube-apiserver部署
- windows 下安装ElasticSearch方法
- 【坑】使用IDEA创建maven的时候,提示缺少plugin-clean 等
- Word 写论文插入参考文献的正确操作