BZOJ1434:[ZJOI2009]染色游戏(博弈论)
Description
Input
Output
Sample Input
3
HHH
HHH
2 3
HHH
TTH
2 1
T
H
Sample Output
- -
- -
Solution
有一个叫$yyb$的神仙她说这个题打表就可以了,于是我就抄了个爽。
首先要知道翻硬币游戏的一个结论。
假设你操作的最右(下)方的硬币必须是正着的,那么局面的$SG$值为局面中每个正面朝上的棋子单一存在时的$SG$值的异或和。
单一存在时$SG$的异或和就可以打表搞了。规律是:(左上角为$(0,0)$)
如果$i=0$且$j=0$,$SG(i,j)=2^{i+j}$。
否则$SG(i,j)=lowbit(i+j+1)$。
可以发现虽然这个$SG$值太大,可他二进制下都只有一位啊,开个$vis$数组记一下就好了。
Code
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#define N (509)
using namespace std; int T,n,m,flag,vis[N];
char s[N]; int lowbit(int x) {return x&(-x);} int SG(int i,int j)
{
if (i && j) return i+j;
return log2(lowbit(i+j+));
} int main()
{
scanf("%d",&T);
while (T--)
{
flag=;
memset(vis,,sizeof(vis));
scanf("%d%d",&n,&m);
for (int i=; i<n; ++i)
{
scanf("%s",s);
for (int j=; j<m; ++j)
if (s[j]=='T') vis[SG(i,j)]^=;
}
for (int i=; i<n+m-; ++i)
if (vis[i]) flag=;
if (flag) puts("-_-");
else puts("=_=");
}
}
BZOJ1434:[ZJOI2009]染色游戏(博弈论)的更多相关文章
- bzoj1434 [ZJOI2009]染色游戏
Description 一共n × m 个硬币,摆成n × m 的长方形.dongdong 和xixi 玩一个游戏, 每次可以选择一个连通块,并把其中的硬币全部翻转,但是需要满足存在一个 硬币属于这个 ...
- [luogu2594 ZJOI2009]染色游戏(博弈论)
传送门 Solution 对于硬币问题,结论是:当前局面的SG值等于所有背面朝上的单个硬币SG值的异或和 对于求单个背面朝上的硬币SG值...打表找规律吧 Code //By Menteur_Hxy ...
- 【BZOJ1434】[ZJOI2009]染色游戏(博弈论)
[BZOJ1434][ZJOI2009]染色游戏(博弈论) 题面 BZOJ 洛谷 题解 翻硬币的游戏我似乎原来在博客里面提到过,对于这类问题,当前局面的\(SG\)函数就是所有反面朝上的硬币单一存在时 ...
- [ZJOI2009]染色游戏
Description 一共n × m 个硬币,摆成n × m 的长方形.dongdong 和xixi 玩一个游戏, 每次可以选择一个连通块,并把其中的硬币全部翻转,但是需要满足存在一个 硬币属于这个 ...
- BZOJ 1434: [ZJOI2009]染色游戏
一开始想这不$SG$裸题...然后发现100组数据...然后发现连通块是任意的求$SG$貌似要暴力枚举.... 然后想了一下1维,手动打表,每次就是队当前所有异或后缀和求$mex$,好像就是$lowb ...
- luogu2594 [ZJOI2009]染色游戏
做法其他题解已经说得很清楚了,但似乎没有对于本题 SG 函数正确性的证明,我来口胡一下( 证明: 猜想: \[\operatorname{SG}(i,j)=\begin{cases}\operator ...
- BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】
1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 897 Solved: 394[Submit][Status ...
- POJ.1067 取石子游戏 (博弈论 威佐夫博弈)
POJ.1067 取石子游戏 (博弈论 威佐夫博弈) 题意分析 简单的威佐夫博弈 博弈论快速入门 代码总览 #include <cstdio> #include <cmath> ...
- HDU.2516 取石子游戏 (博弈论 斐波那契博弈)
HDU.2516 取石子游戏 (博弈论 斐波那契博弈) 题意分析 简单的斐波那契博弈 博弈论快速入门 代码总览 #include <bits/stdc++.h> #define nmax ...
随机推荐
- [日常] nginx与负载均衡
去年的事,随便记记 ========================================================================= 2017年3月31日 记录: n ...
- redis入门基础
环境: centos 一.安装 sudo su cd wget http://labfile.oss.aliyuncs.com/courses/106/redis-2.8.4.tar.gz tar - ...
- ef oracle参数化问题
并非所有变量都已绑定 假如一个sql是这样的 string sql =@" select id from a where date between :StartDate and :EndDa ...
- Android开发之旅1:环境搭建及HelloWorld
——工欲善其事必先利其器 引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方 ...
- 重温jQuery
Write Less, Do More! ——John Resig(jQuery设计者) 目录 基础知识 概况 编程访问DOM节点 基础知识 Web网页是有结构的HTML文档.浏览器分析HTML文档, ...
- python学习之老男孩python全栈第九期_数据库day003 -- 作业
数据库: class: course: student: teacher: score: /* Navicat Premium Data Transfer Source Server : local ...
- styled-components 弃用 injectGlobal
styled-components 最新版本是v4.1.2,但是从v4开始,就酱原来的injectGlobal方法用createGlobalStyle替换了.用法上也有一些不同了: 我今天直接引inj ...
- HTML学习笔记《一》 ---- HTML基本认识
HTML 基本认识 一.简介 1.HTML是超文本标记语言,标准通用标记语言下的一个应用,解释性语言. 2.“超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 3.超文本标记语言的 ...
- python条件判断和循环
条件判断 if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> e ...
- 关于微信小程序开发中遇到的缺少game.json问题的解决
一.小程序开发的两种选项 ①小游戏开发:内部对应的入口配置文件为game.json丶game.wxml之类的文件或者项目. ②小程序开发:内部对应的入口配置文件为app.json丶app.wxml之类 ...