NOIP 模拟 $28\; \rm 遗忘之祭仪$
题解 \(by\;zj\varphi\)
直接贪心模拟即可,对于每个点,如果它未被覆盖,直接在这覆盖一次。
每个黑点只会被扫一次,所以总复杂度为 \(\mathcal O\rm (nm)\)
Code
%: pragma GCC optimize("O9")
%: pragma GCC optimize("inline")
#include<bits/stdc++.h>
#define ri register signed
#define p(i) ++i
using namespace std;
namespace IO{
char buf[1<<21],*p1=buf,*p2=buf,OPUT[100];
#define gc() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?(-1):*p1++;
template<typename T>inline void read(T &x) {
ri f=1;x=0;register char ch=getchar();
while(!isdigit(ch)) {if (ch=='-') f=0;ch=getchar();}
while(isdigit(ch)) {x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
x=f?x:-x;
}
template<typename T>inline void print(T x,char t) {
if (x<0) putchar('-'),x=-x;
if (!x) return putchar('0'),(void)putchar(t);
ri cnt(0);
while(x) OPUT[p(cnt)]=x%10,x/=10;
for (ri i(cnt);i;--i) putchar(OPUT[i]^48);
return (void)putchar(t);
}
}
using IO::read;using IO::print;
namespace nanfeng{
#define node(x,y) (node){x,y}
#define FI FILE *IN
#define FO FILE *OUT
template<typename T>inline T cmax(T x,T y) {return x>y?x:y;}
template<typename T>inline T cmin(T x,T y) {return x>y?y:x;}
static const int N=1e3+7;
char s[N];
int mt[N][N],mxx,mxy,mn,cnt,T,n,m,a,b,fg;
struct node{int x,y;}pnt[N*N];
inline int check(int x,int y) {
for (ri i(1);i<=cnt;p(i)) {
int cx=x+pnt[i].x,cy=y+pnt[i].y;
if (cx<1||cx>n||cy<1||cy>m) return 0;
if (!mt[cx][cy]) return 0;
mt[cx][cy]=0;
}
return 1;
}
inline int main() {
//FI=freopen("nanfeng.in","r",stdin);
//FO=freopen("nanfeng.out","w",stdout);
read(T);
for (ri z(1);z<=T;p(z)) {
read(n),read(m),read(a),read(b);
cnt=fg=0;
mxx=INT_MAX,mxy=INT_MAX;
for (ri i(1);i<=n;p(i)) {
scanf("%s",s+1);
for (ri j(1);j<=m;p(j)) mt[i][j]=(s[j]=='x');
}
for (ri i(1);i<=a;p(i)) {
scanf("%s",s+1);
for (ri j(1);j<=b;p(j))
if (s[j]=='x') {
pnt[p(cnt)]=node(i,j);
if (i<mxx) mxx=i,mxy=j,mn=cnt;
else if (i==mxx) if (j<mxy) mxy=j,mn=cnt;
}
}
if (!cnt) {puts("No");continue;}
for (ri i(1);i<=cnt;p(i)) {
if (mn==i) continue;
pnt[i].x-=pnt[mn].x,pnt[i].y-=pnt[mn].y;
}
pnt[mn].x=pnt[mn].y=0;
for (ri i(1);i<=n&&!fg;p(i))
for (ri j(1);j<=m&&!fg;p(j))
if (mt[i][j]) if (!check(i,j)) fg=1,puts("No");
if (fg) continue;
puts("Yes");
}
return 0;
}
}
int main() {return nanfeng::main();}
NOIP 模拟 $28\; \rm 遗忘之祭仪$的更多相关文章
- NOIP 模拟 $28\; \rm 割海成路之日$
题解 \(by\;zj\varphi\) 用两个集合分别表示 \(1\) 边联通块,\(1,2\) 边联通块 . \(\rm son_x\) 表示当前节点通过 \(3\) 类边能到的 \(2\) 联通 ...
- NOIP 模拟 $28\; \rm 客星璀璨之夜$
题解 \(by\;zj\varphi\) 概率与期望,考虑 \(\rm dp\) 设 \(dp_{i,j}\) 为消除 \(i-j\) 这一段行星的期望,转移: 枚举 \(k\) 为当前状态下第一个撞 ...
- NOIP模拟 1
NOIP模拟1,到现在时间已经比较长了.. 那天是6.14,今天7.18了 //然鹅我看着最前边缺失的模拟1,还是终于忍不住把它补上,为了保持顺序2345重新发布了一遍.. # 用 户 名 ...
- 20190902+0903合集-NOIP模拟
一直没时间写QwQ 于是补一下. Day 1 晚饭吃的有点恶心…… $1s\,2s\,5s$ 还开 -O2 ?? 有点恐怖. T1 猛的一想: 把外面设成一个点, 向入口连一条权为排队时间的边 从出口 ...
- 2021.5.22 noip模拟1
这场考试考得很烂 连暴力都没打好 只拿了25分,,,,,,,,好好总结 T1序列 A. 序列 题目描述 HZ每周一都要举行升旗仪式,国旗班会站成一整列整齐的向前行进. 郭神作为摄像师想要选取其中一段照 ...
- NOIP模拟3
期望得分:30+90+100=220 实际得分:30+0+10=40 T1智障错误:n*m是n行m列,硬是做成了m行n列 T2智障错误:读入三个数写了两个%d T3智障错误:数值相同不代表是同一个数 ...
- 7.22 NOIP模拟7
又是炸掉的一次考试 T1.方程的解 本次考试最容易骗分的一道题,但是由于T2花的时间太多,我竟然连a+b=c都没判..暴力掉了40分. 首先a+b=c,只有一组解. 然后是a=1,b=1,答案是c-1 ...
- 20190725 NOIP模拟8
今天起来就是虚的一批,然后7.15开始考试,整个前半个小时异常的困,然后一看题,T1一眼就看出了是KMP,但是完了,自己KMP的打法忘的一干二净,然后开始打T2,T2肝了一个tarjan点双就扔上去了 ...
- 5.23考试总结(NOIP模拟2)
5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[ ...
随机推荐
- bugku Crypto 下半部分wp
1. 百度托马斯这个人居然还发明了一种轮转的加密法,发现原理是,他将很多行乱序的26个字母,插到一根柱子上,参考糖葫芦的样子,可以旋转每一行,设置自己要发送的明文后,向对方发送乱码的一列,对方只要将这 ...
- 每日英语——the rest of my life
<the rest of My life> 词面意思:我的余生 实际意思:我的余生 1. 歌曲:<The Rest of My life> Less Than Jake 歌词 ...
- 【网络IO系列】IO的五种模型,BIO、NIO、AIO、IO多路复用、 信号驱动IO
前言 在上一篇文章中,我们了解了操作系统中内核程序和用户程序之间的区别和联系,还提到了内核空间和用户空间,当我们需要读取一条数据的时候,首先需要发请求告诉内核,我需要什么数据,等内核准备好数据之后 , ...
- Maven工程 报 Diamond types are not supported at language level '5'
Maven工程 报 Diamond types are not supported at language level '5' 出现这种信息,一般表示的是你的language level(IDEA下J ...
- 【JavaWeb】请求和响应Request&Response
请求 请求对象 关于请求 顾名思义,意思就是请求一个"对象" 请求不到的,别想了 请求,就是使用者希望从服务器端索取一些资源,向服务器发出询问.在B/S架构中,就是客户浏览器向服务 ...
- POJ2482 Stars in Your Window 题解
Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw you? I stil ...
- POJ1704 Georgia and Bob 题解
阶梯博弈的变形.不知道的话还是一道挺神的题. 将所有的棋子两两绑在一起,对于奇数个棋子的情况,将其与起点看作一组.于是便可以将一组棋子的中间格子数看作一推石子.对靠右棋子的操作是取石子,而对左棋子的操 ...
- 第十五篇 -- QListWidget与QToolButton(界面)
效果图: 这还只是一个界面,并没有实现相应功能. 先看下这图的构成吧. 工具栏的就是将Action拖上去,这部分前面已经介绍过了,那就看下面这部分的构图. 1.左侧是一个工具箱(ToolBox)组件, ...
- spring web.xml 标签<param-name>contextConfigLocation</param-name>
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</lis ...
- 快速设置 JAVA_HOME
快速设置 JAVA_HOME %SystemRoot%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables