一. 原题链接 https://codeforces.com/contest/1494/problem/B

 

二. 题意 + 题解:

没看懂题目, 懵了好久,

先狡辩一下当时误解的句子, 英语是硬伤了, 呜呜

exactly U cells in the top row are black; //意为 : 最上行恰好有U个黑块

Note that you can color zero cells black and leave every cell white. // 意为 : 你可以一个方格也不涂黑色, 并且可以都涂白色

所以 U,R,D,L分别代表 最上行, 最右列, 最下行, 最左列的要求的黑块数目, 我们要做的就是该咋涂色, 使这2行2列满足.

需要注意的是: 四个角里的颜色连着一行一列, 需分开讨论: 

枚举每个角的黑色格子数(0或1),

如果这一行(或列) 两角中黑格数目 <= 目标 && 可以涂黑色的数目 >= 目标,

上下左右四趟都满足则输出YES, 那如何满足呢?

1. 这一行(或列) 两角中黑格数目 <= 目标 :  若为行 则需 最左格+最右格黑格数目 <= 目标;

                  若为列  则需最上格加最下格黑格数目 <= 目标

2.  可以涂黑色的数目 >= 目标 :  该行(或列)的格子数 - 2 + 两角中黑格数目;

             其中该行(或列)的格子数n - 2 意为这一行(或列)不受其它列(或行)的干扰的格子数目

只需将不符合条件的都踢出去就好了, 来个continue

三. AC代码

#include <iostream>

using namespace std;

int main()
{
int t, n, u, r, l, d;
cin >> t;
while(t --)
{
bool ok = 0;
cin >> n >> u >> r >> d >> l;
//核心代码, 看着麻烦, 其实都是类似的代码
for(int ul = 0; ul < 2; ul ++)//ul, ur, dl, dr分别为四个角的黑块数
for(int ur = 0; ur < 2; ur ++)
for(int dr = 0; dr < 2;dr ++)
for(int dl = 0; dl < 2; dl ++)
{
if(dr + ur > r || n - 2 + dr + ur < r)//如果这一行两角中黑格数目 <= 目标 && 可以涂黑色的数目 >= 目标
continue;
if(ul + dl > l || n - 2 + ul + dl < l)
continue;
if(ul + ur > u || n - 2 + ul + ur < u)
continue;
if(dl + dr > d || n - 2 + dl + dr < d)
continue;
ok = true;
break;
}
puts(ok? "YES" : "NO");
}
return 0;
}

 

四.

附原题:

B. Berland Crossword
 

Berland crossword is a puzzle that is solved on a square grid with nn rows and nn columns. Initially all the cells are white.

To solve the puzzle one has to color some cells on the border of the grid black in such a way that:

  • exactly U cells in the top row are black;
  • exactly R cells in the rightmost column are black;
  • exactly D cells in the bottom row are black;
  • exactly L cells in the leftmost column are black.

Note that you can color zero cells black and leave every cell white.

Your task is to check if there exists a solution to the given puzzle.

Input

The first line contains a single integer tt (1≤t≤100; 1≤t≤1000) — the number of testcases.

Then the descriptions of tt testcases follow.

The only line of each testcase contains 55 integers n,U,R,D,L (2≤n≤100; 2≤n≤100; 0≤U,R,D,L≤n).

Output

For each testcase print "YES" if the solution exists and "NO" otherwise.

You may print every letter in any case you want (so, for example, the strings yEs, yes, Yes and YES are all recognized as positive answer).

Example
input
4
5 2 5 3 1
3 0 0 0 0
4 4 1 4 0
2 1 1 1 1
output
YES
YES
NO
YES
Note

Here are possible solutions to testcases 11, 22 and 44:

Edu Cf Round 105 (Div. 2) B. Berland Crossword 1.读懂题, 2. 思维的更多相关文章

  1. CF Round #551 (Div. 2) D

    CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\ ...

  2. CF Round #510 (Div. 2)

    前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\) ...

  3. 竞赛题解 - CF Round #524 Div.2

    CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...

  4. 构造 Codeforces Round #Pi (Div. 2) B. Berland National Library

    题目传送门 /* 题意:给出一系列读者出行的记录,+表示一个读者进入,-表示一个读者离开,可能之前已经有读者在图书馆 构造:now记录当前图书馆人数,sz记录最小的容量,in数组标记进去的读者,分情况 ...

  5. 水题 Codeforces Round #105 (Div. 2) B. Escape

    题目传送门 /* 水题:这题唯一要注意的是要用double,princess可能在一个小时之内被dragon赶上 */ #include <cstdio> #include <alg ...

  6. CF Round #600 (Div 2) 解题报告(A~E)

    CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...

  7. cf Round#273 Div.2

    题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...

  8. CF Round #509 (Div. 2)

    前言:第一次打\(CF\),因为经验不足以及英语水平很烂,即便在机房大佬的带领下也是花了好久才读懂题目..\(A\)题直到\(11\)分钟才\(A\),题目一共才做了\(4\)题,太菜了.. A. H ...

  9. Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)

    Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...

随机推荐

  1. Chartjs 初体验

    I 官网 https://www.chartjs.org/ https://chartjs.bootcss.com/ 中文网址 简单易上手,支持的Chart 类型:折线图,饼图,柱状,雷达图,网状图 ...

  2. 使用pyautogui自动在某网站投票的脚本

    网页自动投票: # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan import re import pypercli ...

  3. OpenCV使用级联分类器实现人脸检测

    一.概述 案例:使用opencv级联分类器CascadeClassifier+其提供的特征数据实现人脸检测,检测到人脸后使用红框画出来. API介绍:detectMultiScale( InputAr ...

  4. ubuntu忘记密码,用root修改Ubuntu密码

    今天突发奇想,想改一下ubuntu的用户名,仅仅修改了/etc/passwd中的用户名. 改完后没有用命令修改密码,直接reboot了. 结果悲剧了,登不进去了. 赶紧百度一下,结果发现,本宝宝看不懂 ...

  5. Hash链表转换为红黑树,和树转换为链表的条件

    链表转换位红黑树 两个条件,必须同时满足两个条件才能进行转换 条件1:单个链表长度大于等于8 条件2:hashMap的总长度大于64个.且树化的节点位置不能为空 从源码看 条件一: 在putVal() ...

  6. 西门子S210电机位置控制过调问题解决方法

    问题描述 创建完工艺对象,使用MC_MoveAbsolute工艺指令进行绝对定位,发现在下达指令后,电机会出现先超过目标位置再回调的现象,即过冲. 电机连接的机械结构为旋转轴,而不是线性轴. 解决方法 ...

  7. Linux(centos7)安装RabbitMQ

    由于RabbitMQ是由Erlang语言开发的,所以我们需要体检安装erlang语言的环境 下载这三个安装包:https://www.aliyundrive.com/s/4AxfTepHjMD 执行安 ...

  8. 生产出现oom问题,怎么排查?

    生产出现oom问题,怎么排查?   1.使用dmesg命令查看系统日志 dmesg |grep -E 'kill|oom|out of memory',可以查看操作系统启动后的系统日志,这里就是查看跟 ...

  9. kafka中的 zookeeper 起到什么作用,可以不用zookeeper么?

    zookeeper 是一个分布式的协调组件,早期版本的kafka用zk做meta信息存储,consumer的消费状态,group的管理以及 offset的值.考虑到zk本身的一些因素以及整个架构较大概 ...

  10. jQuery--内容过滤和可见性过滤

    一.内容过滤 1.内容过滤选择器介绍 :empty 当前元素是否为空(是否有标签体) :contains(text)   标签体是否含有指定的文本 :has(...)                 ...