CF1494B Berland Crossword 题解
Content
有一种叫做 Berland crossword 的拼图游戏。这个拼图由 \(n\) 行 \(n\) 列组成,你可以将里面的一些格子涂成黑色。现在给出 \(T\) 个这样的拼图,每个拼图都含有如下限制:
- 第一行最多有 \(u\) 个黑色格子。
- 第 \(n\) 列最多有 \(r\) 个黑色格子。
- 第 \(n\) 行最多有 \(d\) 个黑色格子。
- 第一列做多有 \(l\) 个黑色格子。
问是否有满足如上限制的拼图(不需要输出方案)。
数据范围:\(2\leqslant n\leqslant 100\),\(0\leqslant u,r,d,l\leqslant n\),\(1\leqslant T\leqslant 10^3\)。
Solution
第二题还是一样的暴力,只不过可能和其他那些直接暴力枚举 \(16\) 种情况的不太一样,这里讲讲。
首先,我们可以想到,如果 \(u=n\),那么第一列和第 \(n\) 列都至少有 \(1\) 个黑色格子,\(d=n\) 同理;如果 \(r=n\),那么第一行和第 \(n\) 行都至少有一个黑色格子,\(l=n\) 同理。
另外还有一种比较特殊的情况,就是当上面的四个数中的某些数 \(=n-1\)。如果 \(u=n-1\),那么第一列和第 \(n\) 列中的一列至少会有 \(1\) 个黑色格子,\(d=n-1\) 同理;如果 \(r=n-1\),那么第一行和第 \(n\) 行中的一行至少会有 \(1\) 个黑色格子,\(l=n-1\) 同理。
于是,我们不妨先设出所有的 \(u,r,d,l\) 所在的行列在输入限制下的最小黑色格子数。先把所有的 \(=n\) 的情况所影响的行列的最小黑色格子数加 \(1\),然后对于 \(=n-1\) 的情况,我们看当前还有那些行列的最小黑色格子数小于输入限制,就把那个行列的最小黑色格子数加 \(1\)(如果两个行或者两个列当前的最小黑色格子数都小于输入限制,随便加进去哪一个行列都行)。最后再来判断是否超过了输入限制即可。
如果上面的文字你并没有听懂,可以参考一下下面的代码实现。
Code
int n, u, r, d, l, limit[7], num[7];
int main() {
MT {
memset(limit, 0, sizeof(limit));
memset(num, 0, sizeof(num));
n = Rint, u = Rint, r = Rint, d = Rint, l = Rint;
if(u >= n - 1) limit[1] = u - (n - 2);
if(r >= n - 1) limit[2] = r - (n - 2);
if(d >= n - 1) limit[3] = d - (n - 2);
if(l >= n - 1) limit[4] = l - (n - 2);
num[1] += (limit[2] == 2) + (limit[4] == 2), num[2] += (limit[1] == 2) + (limit[3] == 2), num[3] += (limit[2] == 2) + (limit[4] == 2), num[4] += (limit[1] == 2) + (limit[3] == 2);
if(limit[1] == 1) {(num[2] < r ? num[2] : num[4])++;}
if(limit[2] == 1) {(num[1] < u ? num[1] : num[3])++;}
if(limit[3] == 1) {(num[2] < r ? num[2] : num[4])++;}
if(limit[4] == 1) {(num[1] < u ? num[1] : num[3])++;}
puts((u >= num[1] && r >= num[2] && d >= num[3] && l >= num[4]) ? "YES" : "NO");
}
return 0;
}
CF1494B Berland Crossword 题解的更多相关文章
- Edu Cf Round 105 (Div. 2) B. Berland Crossword 1.读懂题, 2. 思维
一. 原题链接 https://codeforces.com/contest/1494/problem/B 二. 题意 + 题解: 没看懂题目, 懵了好久, 先狡辩一下当时误解的句子, 英语是硬伤 ...
- Educational Codeforces Round 105 (Rated for Div. 2)
A. ABC String 题目:就是用'('和')'来代替A,B,C并与之对应,问是不是存在这样的对应关系使得'('和')'正好匹配 思路:第一个和最后一个字母是确定的左括号或者是右括号,这样就还剩 ...
- 【题解】Berland.Taxi Codeforces 883L 模拟 线段树 堆
Prelude 题目传送门:ヾ(•ω•`)o Solution 按照题意模拟即可. 维护一个优先队列,里面装的是正在运营中的出租车,关键字是乘客的下车时间. 维护一个线段树,第\(i\)个位置表示第\ ...
- [CF846E]Chemistry in Berland题解
这题乍一看是一道水树形DP(其实事实上它确实是树形DP),然后设f[i]表示第i个点所多余/需要的材料,然后我们愉快的列出了式子: if(f[v]<0) f[u] += f[v] * edges ...
- 题解 CF1359A 【Berland Poker】
题意 给出 \(n,m,k\) ,表示 \(k\) 名玩家打牌,共 \(n\) 张牌,\(m\) 张王,保证 \(k|n\) ,记得分为 拿到最多王的玩家手中王数 \(-\)拿到第二多王的玩家手中的王 ...
- Codeforces Round #Pi (Div. 2) B. Berland National Library set
B. Berland National LibraryTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest ...
- CodeForces 164 B. Ancient Berland Hieroglyphs 单调队列
B. Ancient Berland Hieroglyphs 题目连接: http://codeforces.com/problemset/problem/164/B Descriptionww.co ...
- Codeforces Round #Pi (Div. 2) B. Berland National Library 模拟
B. Berland National LibraryTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ...
- Codeforces-Educational Codeforces Round 53题解
写之前,先发表下感慨:好久没写题解了,也许是因为自己越来越急利了,也可以说是因为越来越懒了. A. Diverse Substring 直接找一找有没有相邻的两个不同的字符即可. B. Vasya a ...
随机推荐
- BehaviorTree.CPP.行为树XML格式(六)
The XML format XML模式的基础 在第一个教程中,介绍了这个简单的树. <root main_tree_to_execute = "MainTree" > ...
- Python list的深拷贝和浅拷贝
深拷贝和浅拷贝 列表存储数据,列表拷贝就是数据备份 浅拷贝 优点:占用内存较少 缺点:修改深层数据,会影响原数据 深拷贝 优点:修改数据,互不影响 缺点:占用内存较大 ""&quo ...
- 基于PASA进行基因预测
PASA, acronym for Program to Assemble Spliced Alignments, is a eukaryotic genome annotation tool tha ...
- mingling
mysql> USE mon Reading table information for completion of table and column names You can turn of ...
- eggNOG 5.0数据库介绍
目录 1. eggNOG简介 2. eggNOG-Mapper注释原理 3. eggNOG 5.0数据资源 4. eggNOG-Mapper使用 5. NOG.KOG.COG.KEGG.GO区别? 1 ...
- Linux—软件包管理器yum安装详解
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动下载RPM包 ...
- Demo03找素数
package Deom1;import java.awt.*;import java.util.Scanner;public class lx {//输入任意两个正整数,求出这两个正整数之间素数的个 ...
- typedef定义数组
typedef定义数组 问题来源 在学习高一凡数据结构与算法解析串这一章节时,遇到如下代码不明白其意义,经过查阅终于搞明白 typedef unsigned char SString[MAXLEN + ...
- 学习java 7.11
学习内容: 泛型定义格式:<类型> 优点:把运行时期的问题提前到编译期间:避免了强制类型转换 泛型方法:public class Fanxing { public <T> ...
- mango后台
环境搭建 项目配置 下载后导入项目,删除mvnw.mvnw.cmd两个文件 修改spring-boot-starter-web pom.xml --> run as --> mave i ...