hdu 4642 Fliping game
http://acm.hdu.edu.cn/showproblem.php?pid=4642
对于给定的矩阵 操作步数的奇偶性是确定的
奇数步Alice赢 否则Bob赢
从左上角向右下角遍历遇到1就进行一次处理 遍历到 (x,y) 的时候必须保证 所有(x,y)左上方的点都处理完了
可以根据左上方处理时对(x,y)产生的影响 判断(x,y)的状态
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<cstring>
#include<cmath>
#include<set>
#include<vector>
#include<list>
using namespace std; typedef long long ll;
typedef pair<double,double>ppd;
const double PI = acos(-1.);
const double eps = (1e-9);
const int MOD=10007;
const int N=105;
int a[N][N];
int c[N][N];
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int y)
{
for(int i=x;i<N;i=i+lowbit(i))
for(int j=y;j<N;j=j+lowbit(j))
++c[i][j];
}
int get(int x,int y)
{
int tmp=0;
for(int i=x;i>=1;i=i-lowbit(i))
for(int j=y;j>=1;j=j-lowbit(j))
tmp+=c[i][j];
return tmp;
}
int main()
{
//freopen("data.in","r",stdin);
int T;
scanf("%d",&T);
for(int ca=1;ca<=T;++ca)
{
memset(c,0,sizeof(c));
memset(a,0,sizeof(a));
int n,m;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
scanf("%d",&a[i][j]);
int ans=0;
for(int i=1;i<=n;++i)
{
for(int x=i,y=1;x>=1&&y<=m;--x,++y)
if((a[x][y]+get(x,y))&1)
{
++ans;
add(x,y);
}
}
for(int j=2;j<=m;++j)
{
for(int x=n,y=j;x>=1&&y<=m;--x,++y)
if((a[x][y]+get(x,y))&1)
{
++ans;
add(x,y);
}
}
if((ans&1))
printf("Alice\n");
else
printf("Bob\n");
}
return 0;
}
hdu 4642 Fliping game的更多相关文章
- hdu 4642 Fliping game(博弈)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4642 题意:给定一个棋盘,0表示向下,1表示向上,选一个x,y, 然后翻转从x,y 到n,m.的所有硬币, ...
- HDU 4642 Fliping game (简单博弈)
Fliping game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- HDU 4642 Fliping game (2013多校4 1011 简单博弈)
Fliping game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 【多校练习4签到题】HDU 4642—— Fliping game
来源:点击打开链接 看上去很难,比赛的时候光看hehe了,也没有想. 但是仔细想想,是可以想出来的.一个棋盘上每个格子摆放一个硬币,硬币有正面1和反面0之分.现在两个人可以按照规则翻硬币,选择(x,y ...
- HDU 4642 (13.08.25)
Fliping game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- hdu 4642 博弈
思路:不管是Alice,还是Bob,每次操作都会影响最右下角的数,那么如果是1,Alice赢,否则Bob赢 #include<iostream> #include<cstdio> ...
- hdu 4642 翻硬币
在一个n*m的棋盘上 每一个格子都有一枚硬币 1表示正面 0表示反面你每次可以选择一个硬币为正面的点,然后从该点与右下角点形成的矩阵硬币全都反向,直到一个人没有硬币可以选择则输Alice先手 列举了几 ...
- 【 2013 Multi-University Training Contest 4 】
HDU 4632 Palindrome subsequence dp[x][y]表示区间[x,y]构成回文串的方案数. 若str[x]==str[y],dp[x][y]=dp[x+1][y]+dp[x ...
- hdu4642 Fliping game ——博弈
link:http://acm.hdu.edu.cn/showproblem.php?pid=4642 refer to: http://www.cnblogs.com/jackge/archive/ ...
随机推荐
- RobotFrameWork webservice soap接口测试 (二)
上一篇提到做soap接口测试自己简单的写了个py,然后就简单的实现了个客户端能对远程接口进行调用,对返回的数据进行解析,可后面想着也觉得不对劲,soap协议虽说不像http协议那么普及,但是现在很多公 ...
- Code First is a bad name,这些年我们对Code First的理解都错了 !很震惊吧?
当看到这个时,我也很震惊.估计绝大多数的人和我一样,这些年来,一直不知道Code Fisrt的真实意义.下面是一篇讲述此情况的译文,欢迎围观,若有翻译不当的地方,请指正,谢谢.如果被惊到了,请点赞!, ...
- 欧姆龙PLC以太网FINSTCP通信例程与操作步骤
http://wenku.baidu.com/link?url=aa8kvtCg1eYp-wkIZY_hDpE5IuENT21Uvk1zVNtFiIyPTk-kjfarzSVyGt2DPs4ikXLT ...
- ddd
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqiYF+Y89+3wKwCtvDOCJ6qQifvC+snwHsZEy6naujvCHXkeB/BcDDwnq ...
- 浙江理工2015.12校赛-F Landlocked
Landlocked Time Limit: 5 Sec Memory Limit: 128 MB Submit: 288 Solved: 39 Description Canada is not a ...
- hadoop2.0初识1.1
1.伪分布式hdfs文件系统的搭建(单节点文件系统) 1.1.根据上节的讲解,配置主机映射.jdk和解压hadoop压缩包 1.2.配置namenode 在/opt/modules/hadoop-2. ...
- 5----table类型
table类型是非常重要的Lua数据类型,也是Lua唯一能描述数据结构的类型 table类型可以很灵活的描述多种数据结构,其本身是基于键值对的形式存储数据的 字典结构 字典结构的table 的两种创建 ...
- javaScript对文字按照拼音排序
<title>JavaScript对文字按照拼音排序</title> <SCRIPT type="text/javascript"> funct ...
- windows下安装redis和memcached
redis安装: http://www.68idc.cn/help/server/20141128135092.html phpredis下载地址:https://github.com/phpredi ...
- 浏览器何时发送一个Option请求
Http Options Method 简而言之,OPTIONS请求方法的主要用途有两个: 1.获取服务器支持的HTTP请求方法: 2.用来检查服务器的性能. CORS(跨域资源共享) CORS是一种 ...