题解

最近一遇到神仙题一卡就好久……做点水题滋养一下自己吧= =

显然我们发现放一个方块的奇偶性不会改变,所以格子如果黑格子是奇数,那么就是No

我们发现每个2 × 3的方格里的2 × 1的黑格子都可创造并且平移,这样我们就可以愉快地造出4的倍数了,所以这种情况只要判黑格子奇偶性就行

那么2×2的特判是不是全白或全黑

1×?的从后往前扫,扫到一个黑格子用1*4填一下,不能填证明是No

代码

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#define enter putchar('\n')
#define space putchar(' ')
#define MAXN 1000005
//#define ivorysi
#define pb push_back
#define pii pair<int,int>
#define mp make_pair
using namespace std;
typedef long long int64;
template<class T>
void read(T &res) {
res = 0;char c = getchar();T f = 1;
while(c < '0' || c > '9') {
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9') {
res = res * 10 - '0' + c;
c = getchar();
}
res = res * f;
}
template<class T>
void out(T x) {
if(x < 0) {x = -x;putchar('-');}
if(x >= 10) out(x / 10);
putchar('0' + x % 10);
}
int T,N,M;
int a[10000005],cnt,d[10000005];
int c(int i,int j) {
return (i - 1) * M + j;
}
void Solve() {
read(N);read(M);
cnt = 0;
for(int i = 1 ; i <= N ; ++i) {
char ch = getchar();
while(ch != '1' && ch != '0') ch = getchar();
for(int j = 1 ; j <= M ; ++j) {
a[c(i,j)] = ch - '0';
d[c(i,j)] = 0;
if(a[c(i,j)] == 1) ++cnt;
ch = getchar();
}
}
if(!cnt) {puts("Yes");return;}
if(N == 1 || M == 1) {
if(cnt & 1) {puts("No");return;}
for(int i = 1 ; i <= max(N,M) ; ++i) {
d[i] ^= d[i - 1];
if((a[i] ^ d[i]) == 1) {
if(i + 3 > max(N,M)) {puts("No");return;}
d[i] ^= 1;d[i + 4] ^= 1;
}
}
puts("Yes");
}
else {
if(max(N,M) >= 3) {
if(cnt & 1) puts("No");
else puts("Yes");
}
else {
if(cnt == 4 || cnt == 0) puts("Yes");
else puts("No");
}
}
}
int main() {
#ifdef ivorysi
freopen("f1.in","r",stdin);
#endif
read(T);
while(T--) {
Solve();
}
}

【51nod】1851 俄罗斯方块的更多相关文章

  1. 51nod 1851俄罗斯方块(trick)

    题目大意:给出一个黑白图,你可以选定一个俄罗斯方块的区域,黑白翻转,问能否变成白图 比较trick的题目, 首先可以想到,奇数个1肯定是无解的,所以考虑偶数个1 可以先讨论n是2的情况 当n为2时,其 ...

  2. 51nod 1851 俄罗斯方块

    玩过俄罗斯方块?那你知道俄罗斯方块共有七种吧(其实只有五种) 给一个黑白图,每次能将某些区域的格子黑白反转,至于某些区域的意思嘛,就是俄罗斯方块形状的区域咯(可水平翻转.上下翻转.旋转) 求能否将图变 ...

  3. 还是俄罗斯方块之android版

    前面的,口水话 请直接跳过. 虽然现在不比以前了 也没多少人气了,放到首页 都不到几百的点击量.也许博客园整体水平也是在往水的方向发展.不谈那些了,哥也曾经辉煌过 有过一天上千的点击量 ,哥也曾经有过 ...

  4. x01.Tetris: 俄罗斯方块

    最强大脑有个小孩玩俄罗斯方块游戏神乎其技,那么,就写一个吧,玩玩而已. 由于逻辑简单,又作了一些简化,所以代码并不多. using System; using System.Collections.G ...

  5. 【51Nod 1244】莫比乌斯函数之和

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...

  6. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  7. 51Nod 1428 活动安排问题

    51Nod   1428  活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...

  8. 51Nod 1278 相离的圆

    51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...

  9. 俄罗斯方块C#版

    using System; using System.Windows.Forms; using System.Drawing; using System.Media; class me : Form ...

随机推荐

  1. Hadoop生态圈-Hive快速入门篇之Hive环境搭建

    Hadoop生态圈-Hive快速入门篇之Hive环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据仓库(理论性知识大多摘自百度百科) 1>.什么是数据仓库 数据 ...

  2. [Java] 集合框架原理之二:锁、原子更新、线程池及并发集合

    java.util.concurrent 包是在 Java5 时加入的,与 concurrent 的相关的有 JMM及 AbstractQueuedSynchronizer (AQS),两者是实现 c ...

  3. [Java] 理解JVM之三:垃圾回收机制

    JVM内存中的各个区域都会回收吗? 首先我们知道 Java 栈和本地方法栈在方法执行完成后对应的栈帧就立刻出栈销毁,两者的回收率可以认为是100%:Java 堆中的对象在没有被引用后,即使用完成后会被 ...

  4. 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文 ...

  5. html5页面头部

    <base href="/bulid/"/> <meta charset="UTF-8"/> <meta http-equiv=& ...

  6. 数据分析与展示---Numpy数据存取与函数

    简介 一:数据的CSV文件存取(一维或二维) (一)写入文件savetxt (二)读取文件loadtxt 二:多维数据的存取 (一)保存文件tofile (二)读取文件fromfile (三)NumP ...

  7. python学习笔记2--list

    一.list操作 list=['xiaohei','xiaobai','xiaohong']#定义一个数组 name=[]#定义一个空数组 #查 #下标是从0开始 print(list[1]) #-1 ...

  8. Redis学习九:Redis的发布订阅

    发布订阅功能,redis也具备,但是要知道的是redis主要功能还是分布式的缓存功能,因此这种订阅发布功能很少用,有专门的kafka  activemq 等消息中间件来完成,因此本文只是简单介绍,了解 ...

  9. idea插件安装的通用操作

    序:今天下午看到一个bug,很神奇,粘出来大家看看 看到这个异常栈,有经验的或者查到的答案都是mapper.xml中哪个的方法配置错了,应替换parameterMap为parameterType, 奇 ...

  10. 20155330 2016-2017-2 《Java程序设计》第五周学习总结

    20155330 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 学习目标 理解异常架构 掌握try...catch...finally处理异常的方法 会用t ...