[luogu2594 ZJOI2009]染色游戏(博弈论)
2024-08-31 01:33:25
Solution
对于硬币问题,结论是:当前局面的SG值等于所有背面朝上的单个硬币SG值的异或和
对于求单个背面朝上的硬币SG值。。。打表找规律吧
Code
//By Menteur_Hxy
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define Re register
#define Ms(a,b) memset(a,(b),sizeof(a))
#define Fo(i,a,b) for(Re int i=(a),_=(b);i<=_;i++)
#define Ro(i,a,b) for(Re int i=(b),_=(a);i>=_;i--)
using namespace std;
inline int read() {
int x=0,f=1;char c=getchar();
while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}
while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();
return x*f;
}
int T;
bool vis[510];
char s[110];
int lowbit(int x) {return x&-x;}
int getSG(int i,int j) {
if(i==1||j==1) return log2(lowbit(i+j-1));
else return i+j-2;
}
int main() {
T=read();
while(T--) {
Ms(vis,0);
int n=read(),m=read(),SG=0;
Fo(i,1,n) {
scanf("%s",s+1);
Fo(j,1,m) if(s[j]!='H') vis[getSG(i,j)]^=1;
}
Fo(i,0,n+m) if(vis[i]) {SG=1;break;}
puts(SG?"-_-":"=_=");
}
}
最新文章
- [WPF系列]基础学习(一) WPF是什么?
- JVM探索之内存管理(三)
- Java 执行 SQL 脚本文件
- 【5】python核心编程 第八章-条件和循环
- 我的美国(北美)计算机CS实习面试经验分享
- js中width,height,left,top计算
- 动态计算rem的js代码
- hive上mysql元数据库配置
- loadrunner&#160;运行脚本-Run-time&#160;Settings->;General->;Additional&#160;attributes设置
- HDU 2036 叉乘求三角形面积
- 安装opencv3.x卡在ICV: Downloading ippicv_linux_20151201.tgz...
- Searching with Deep Learning 深度学习的搜索应用
- 一日游 + 进度psp
- C#共享内存整理
- CSS3 响应式web设计,CSS3 Media Queries
- NOIP2015D2总结
- Java数据类型(基本数据类型和引用数据类型)
- 仅此一文让你明白ASP.NET MVC 之View的显示
- [xsy1515]小学生数学题
- (转)blkid命令 获取文件系统类型、UUID