CF508A Pasha and Pixels 题解
Content
有一个 \(n\times m\) 的矩阵,一开始全部格子被染成白色。 接下来有 \(k\) 个操作,每一个操作表示把一个格子染成黑色。问第一次出现 \(2\times 2\) 的全部涂成黑色的矩阵是第几个操作,或者没有出现这样的矩阵。
数据范围:\(1\leqslant n,m\leqslant 1000,1\leqslant k\leqslant 10^5\)。
Solution
我们可以边涂黑边判断,假设现在将 \((x,y)\) 涂成黑色。那么,出现一个 \(2\times 2\) 的全部涂成黑色的矩阵只会有 \(4\) 种情况:
- \((x,y),(x-1,y),(x,y-1),(x-1,y-1)\) 全部涂成黑色。
- \((x,y),(x+1,y),(x,y-1),(x+1,y-1)\) 全部涂成黑色。
- \((x,y),(x-1,y),(x,y+1),(x-1,y+1)\) 全部涂成黑色。
- \((x,y),(x+1,y),(x,y+1),(x+1,y+1)\) 全部涂成黑色。
只要满足上面四种情况中的任意一种,直接输出答案结束。否则,操作全部执行完毕还是没有出现,输出 \(0\)。
Code
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n, m, k, a[1007][1007];
bool check1(int x, int y) {
return a[x][y] && a[x - 1][y] && a[x][y - 1] && a[x - 1][y - 1];
}
bool check2(int x, int y) {
return a[x][y] && a[x + 1][y] && a[x][y - 1] && a[x + 1][y - 1];
}
bool check3(int x, int y) {
return a[x][y] && a[x - 1][y] && a[x][y + 1] && a[x - 1][y + 1];
}
bool check4(int x, int y) {
return a[x][y] && a[x + 1][y] && a[x][y + 1] && a[x + 1][y + 1];
}
int main() {
scanf("%d%d%d", &n, &m, &k);
for(int i = 1; i <= k; ++i) {
int x, y;
scanf("%d%d", &x, &y);
a[x][y] = 1;
if(check1(x, y) || check2(x, y) || check3(x, y) || check4(x, y))
return printf("%d", i), 0;
}
return printf("0"), 0;
}
CF508A Pasha and Pixels 题解的更多相关文章
- 【codeforces 508A】Pasha and Pixels
[题目链接]:http://codeforces.com/contest/508/problem/A [题意] 让你在一个n*m的方格上给方格染色; 顺序给出染色的k个格子 如果在某一时刻 有一个2* ...
- 模拟 Codeforces Round #288 (Div. 2) A. Pasha and Pixels
题目传送门 /* 模拟水题:给定n*m的空白方格,k次涂色,将(x,y)处的涂成黑色,判断第几次能形成2*2的黑色方格,若不能,输出0 很挫的判断四个方向是否OK */ #include <cs ...
- Codeforces Round #288 (Div. 2)
A. Pasha and Pixels 题意就是给一个n*m的矩阵,k次操作,一开始矩阵全白,一次操作可以染黑一个格子,问第几次操作可以使得矩阵中存在一个2*2的黑色矩阵.直接模拟即可 代码: ...
- UVA - 297Quadtrees(四分图)
Quadtrees Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Submit Statu ...
- LeetCode Smallest Rectangle Enclosing Black Pixels
原题链接在这里:https://leetcode.com/problems/smallest-rectangle-enclosing-black-pixels/ 题目: An image is rep ...
- Codeforces Round #337 (Div. 2) A. Pasha and Stick 水题
A. Pasha and Stick Pasha has a wooden stick of some positive integer length n. He wants to perform ...
- 302. Smallest Rectangle Enclosing Black Pixels
题目: An image is represented by a binary matrix with 0 as a white pixel and 1 as a black pixel. The b ...
- Codeforces Round #337 (Div. 2) A. Pasha and Stick 数学
A. Pasha and Stick 题目连接: http://www.codeforces.com/contest/610/problem/A Description Pasha has a woo ...
- Codeforces Round #311 (Div. 2)B. Pasha and Tea 水题
B. Pasha and Tea Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/prob ...
随机推荐
- 不用Spring Boot的痛苦是什么?用了Spring Boot以后的好处是什么?
1.不用Spring Boot的痛苦是什么? (1)各种技术整合在一起,版本混乱,大量依赖自己去找,依赖冲突 (2)基于xml格式的配置文件,对各种技术框架进行大量的繁琐配置,mvc-servlet. ...
- 目前国内UI设计师的发展现状如何?
在分析这个问题之前,我们先来说说如何优秀的UI设计师所需要具备的素质是什么,只有做到了以下几点,才有资格在这个行业生存下去的能力,也才有机会展望行业的未来前景. 一位合格的UI设计师必须做到以下3点: ...
- Codeforces 1188D - Make Equal(dp)
Codeforces 题目传送门 & 洛谷题目传送门 首先我们考虑枚举最后这 \(n\) 个数变成的值 \(v\),那么需要的操作次数即为 \(\sum\limits_{i=1}^n\text ...
- MySQL 数据库的下载、安装和测试
实例:Ubuntu 20.04 安装 mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar 1. 下载安装MySQL(安装 MySQL 5.7) ...
- 富集分析DAVID、Metascape、Enrichr、ClueGO
前言 一般我们挑出一堆感兴趣的基因想临时看看它们的功能,需要做个富集分析.虽然公司买了最新版的数据库,如KEGG,但在集群跑下来嫌麻烦.这时网页在线或者本地化工具派上用场了. DAVID DAVID地 ...
- Redis队列跟MQ的区别
Redis队列:Redis队列是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 ...
- seq生成格式化字符
[root@ansz.quan.bbs ~]$seq -s "+" 10 1+2+3+4+5+6+7+8+9+10 seq为生成数字序列 -s 分隔符
- 编程艺术第十六~第二十章:全排列/跳台阶/奇偶调序,及一致性Hash算法
目录(?)[+] 第十六~第二十章:全排列,跳台阶,奇偶排序,第一个只出现一次等问题 作者:July.2011.10.16.出处:http://blog.csdn.net/v_JULY_v. 引言 ...
- Demo01无重复数字
package 习题集2;//有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?public class Demo1 { public static void main(S ...
- 04 Windows安装python运行环境
安装python运行环境 使用微信扫码关注微信公众号,并回复:"Python工具包",免费获取下载链接! 1.卸载程序(电脑未装此程序,跳过此过程) 卸载这两个程序 出现下图所示, ...