hdu 4146 Flip Game
Flip Game
Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1800 Accepted Submission(s):
589
two-sided pieces placed on each of its N^2 squares. One side of each piece is
white and the other one is black and each piece is lying either it's black or
white side up. The rows are numbered with integers from 1 to N upside down; the
columns are numbered with integers from 1 to N from the left to the right.
Sequences of commands (xi, yi) are given from input, which
means that both pieces in row xi and pieces in column yi
will be flipped (Note that piece (xi, yi) will be flipped
twice here). Can you tell me how many white pieces after sequences of
commands?
Consider the following 4*4 field as an
example:
bwww
wbww
wwbw
wwwb
Here "b" denotes pieces
lying their black side up and "w" denotes pieces lying their white side
up.
Two commands are given in order: (1, 1), (4, 4). Then we can get the
final 4*4 field as follows:
bbbw
bbwb
bwbb
wbbb
So the
answer is 4 as there are 4 white pieces in the final field.
indicating the number of test cases (1 <= T <= 20).
For each case, the
first line contains a positive integer N, indicating the size of field; The
following N lines contain N characters each which represent the initial field.
The following line contain an integer Q, indicating the number of commands; each
of the following Q lines contains two integer (xi, yi),
represent a command (1 <= N <= 1000, 0 <= Q <= 100000, 1 <=
xi, yi <= N).
with 1) and the number of white pieces after sequences of commands.
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char ch[][];
int a[],b[];
int main()
{
int w,T,n,m,t,x,y,i,j,k;
scanf("%d",&T);
for(w=; w<=T; w++)
{
scanf("%d",&n);
for(i=; i<n; i++)
scanf("%s",ch[i]);
memset(a,,sizeof(a));
memset(b,,sizeof(b));
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&x,&y);
x--,y--; //注意输入从(1,1)开始
a[x]++; //记录每一行变换的次数
b[y]++; //记录每一列变换的次数
if(a[x]==) //出现2,则表示变换2次,也就是没变,所以0表示不变,1表示变
a[x]=;
if(b[y]==)
b[y]=;
}
int s=;
for(i=; i<n; i++)
for(j=; j<n; j++)
{
if(a[i]+b[j]==) //只有出现1才是变换了,0或2都是保持不变
{
if(ch[i][j]=='b')
s++;
}
else
{
if(ch[i][j]=='w')
s++;
}
}
printf("Case #%d: %d\n",w,s);
}
return ;
}
hdu 4146 Flip Game的更多相关文章
- HDU 3487 Play with Chain(Splay)
题目大意 给一个数列,初始时为 1, 2, 3, ..., n,现在有两种共 m 个操作 操作1. CUT a b c 表示把数列中第 a 个到第 b 个从原数列中删除得到一个新数列,并将它添加到新数 ...
- HDU 5694---BD String
HDU 5694 Problem Description 众所周知,度度熊喜欢的字符只有两个:B和D.今天,它发明了一种用B和D组成字符串的规则:S(1)=BS(2)=BBDS(3)=BBDBBD ...
- HDU 1890 区间反转
http://acm.hdu.edu.cn/showproblem.php?pid=1890 Robotic Sort Problem Description Somewhere deep in th ...
- HDU 4064 Carcassonne(插头DP)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4064 Problem Description Carcassonne is a tile-based ...
- HDU 4897 Little Devil I(树链剖分)(2014 Multi-University Training Contest 4)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4897 Problem Description There is an old country and ...
- HDU 3487:Play with Chain(Splay)
http://acm.hdu.edu.cn/showproblem.php?pid=3487 题意:有两种操作:1.Flip l r ,把 l 到 r 这段区间 reverse.2.Cut a b c ...
- hdu 3487 Play with Chain
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3487 YaoYao is fond of playing his chains. He has a c ...
- hdu 4869 Turn the pokers (2014多校联合第一场 I)
Turn the pokers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 3397 Sequence operation(线段树)
HDU 3397 Sequence operation 题目链接 题意:给定一个01序列,有5种操作 0 a b [a.b]区间置为0 1 a b [a,b]区间置为1 2 a b [a,b]区间0变 ...
随机推荐
- javascript中uber实现子类访问父类成员
function Animal(){} Animal.prototype={ name:"animal", toString:function(){ console.log(thi ...
- SQL Server删除用户失败的解决方法
在删除SQL Server用户时,有时会报错:Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除.删除 对于 用户“*****”失败. ...
- Google搜索技巧-入门篇
基本搜索 Google 查询简洁方便,仅需输入查询内容并敲一下回车键 (Enter),或单击“Google 搜索”按钮即可得到相关资料. 搜索两个及两个以上关键字 Google 只会返回那些符合您的全 ...
- <第一周> city中国城市聚类 testdata学生上网聚类 例子
中国城市聚类 # -*- coding: utf-8 -*- kmeans算法 """ Created on Thu May 18 22:55:45 2017 @auth ...
- linux系统 (实验一)实验楼的课程笔记
实验楼的课程笔记 tab 键是命令补全 输入 tail find / 立刻卡住 这时候ctrl+c 可以终端当前指令 一些常用的指令 Ctrl+d 键盘输入结束或退出终端 Ctrl+s 暂停当前程序 ...
- php实现希尔排序
对于排序的算法我想大家首先想到的事 冒泡排序:快速排序:或者想起选择和插入排序: 今天的讲解并不是以上四种:而是希尔排序: 对18W个数字排序,时间比较(毫秒) 希尔排序 0.1s 就完成了,有点不 ...
- IDEA 运行maven项目配置
- 【JZOJ4898】【NOIP2016提高A组集训第17场11.16】人生的价值
题目描述 NiroBC终于找到了人生的意义,可是她已经老了,在新世界,没有人认识她,她孤独地在病榻上回顾着自己平凡的一生,老泪纵横.NiroBC多么渴望再多活一会儿啊! 突然一个戴着黑色方框眼镜,方脸 ...
- 【Leetcode链表】反转链表 II(92)
题目 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NULL, m ...
- springboot 数据访问【转】【补】
六.SpringBoot与数据访问 1.JDBC pom.xml配置 <dependencies> <dependency> <groupId>org.spring ...