【题解】PIE [POI2015] [P3585]
【题解】\(PIE\) \([POI2015]\) \([P3585]\)
逼自己每天一道模拟题
传送门:\(PIE\) \([POI2015]\) \([P3585]\)
【题目描述】
一张 \(n*m\) 的方格纸,有些格子需要印上墨水,剩下的格子需要保持干净。你有一个 \(a*b\) 的印章,有些格子有墨水的。你需要判断能否用这个印章满足要求。
但印的过程中需要满足以下要求:
\((1)\)印章不可以旋转。
\((2)\)不能把墨水印到纸外面。
\((3)\)纸上的同一个格子不可以印多次。
【输入】
第一行一个整数 \(q\),表示测试点数量。接下来 \(q\) 个测试点,每个测试点中:第一行包含4个整数 \(n,m,a,b\)。接下来 \(n\) 行,每行 \(m\) 个字符,描述纸上的图案。\('.'\) 表示留白,\('x'\) 表示需要染黑。接下来 \(a\) 行,每行 \(b\) 个字符,描述印章。\('.'\) 表示不沾墨水,\('x'\) 表示沾墨水。
【输出】
对于每个测试点,输出 \(TAK\)(可满足)或 \(NIE\)(无法满足)。
【数据范围】
\(100\%\) \(1 \leqslant q \leqslant 10\) \(,\) \(1 \leqslant n,m,a,b \leqslant 1000\)
【分析】
炒鸡大水题
先用一个数组储存印章中每一个墨与最左上角墨的相对位置。
扫一遍纸张,一旦发现有需要印墨水的地方,就将其作为起始点扫一遍刚刚的数组,如果有矛盾则说明不满足。
注意要把题目看清楚,有三个要求,我一开始忘了第二条结果 \(WA\) 了三个点....
【Code】
#include<cstdio>
#define F(o,x,y) for(int o=x;o<=y;++o)
const int N=1005;
int T,n,m,a,b,t,nx,ny,stx,sty,wx[N*N],wy[N*N];char s[N][N],Q[N][N];
inline int judge(){
F(i,1,n)F(j,1,m)
if(Q[i][j]=='x')
F(k,1,t){
nx=i+wx[k],ny=j+wy[k];
if(nx>n||ny>m||Q[nx][ny]=='.')return 0;
Q[nx][ny]='.';
}
return 1;
}
int main(){
scanf("%d",&T);
while(T--){
stx=sty=t=0;
scanf("%d%d%d%d",&n,&m,&a,&b);
F(i,1,n)scanf("%s",Q[i]+1);
F(i,1,a){
scanf("%s",s[i]+1);
F(j,1,b)
if(s[i][j]=='x'){
if(!stx)wx[++t]=0,wy[t]=0,stx=i,sty=j;
else wx[++t]=i-stx,wy[t]=j-sty;
}
}
puts(judge()?"TAK":"NIE");
}
}
【题解】PIE [POI2015] [P3585]的更多相关文章
- 洛谷 P3585 [POI2015]PIE
P3585 [POI2015]PIE 题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色.你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上 ...
- 洛谷P3585 [POI2015]PIE
传送门 题目大意:有个n*m的格子图,要求'x'点要被染成黑色 有个a*b的印章,'x'是可以染色的印章上的点. 要求用印章去染色格子 (1)印章不可以旋转. (2)不能把墨水印到纸外面. (3)纸上 ...
- POI2015题解
POI2015题解 吐槽一下为什么POI2015开始就成了破烂波兰文题目名了啊... 咕了一道3748没写打表题没什么意思,还剩\(BZOJ\)上的\(14\)道题. [BZOJ3746][POI20 ...
- BZOJ3747:[POI2015]Kinoman——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=3747 https://www.luogu.org/problemnew/show/P3582 共有 ...
- 题解报告:hdu 1969 Pie(二分)
Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no ...
- 题解【UVA12097】Pie
题目描述 输入格式 输出格式 输入输出样例 输入样例#1 3 3 3 4 3 3 1 24 5 10 5 1 4 2 3 4 5 6 5 4 2 输出样例#1 25.1327 3.1416 50.26 ...
- [POI2015]PIE
题目描述 一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色.你有一个a*b的印章,有些格子是凸起(会沾上墨水)的.你需要判断能否用这个印章印出纸上的图案.印的过程中需要满足以下要求:( ...
- 题解【Codeforces859C】Pie Rules
题面 一道需要一定思考的 \(\text{DP}\) . 设 \(dp_i\) 表示第 \(i\) 步走的人能得到的最大分数, \(sum_i\) 表示 \(\sum_{j=i}^n a_j\) ,即 ...
- POI2015 解题报告
由于博主没有BZOJ权限号, 是在洛咕做的题~ 完成了13题(虽然有一半难题都是看题解的QAQ)剩下的题咕咕咕~~ Luogu3585 [POI2015]PIE Solution 模拟, 按顺序搜索, ...
随机推荐
- Android BottomSheet:List列表或Grid网格展示(3)
Android BottomSheet:List列表或Grid网格展示(3) BottomSheet可以显示多种样式的底部弹出面板风格,比如常见的List列表样式或者Grid网格样式,以一个例子 ...
- HDU 4745 最长回文子序列
题目大意 两只青蛙朝不同方向条,每次都到达值相同的位置,不能重复到达自己到过的地方,且不能飞跃已到过的地方 我们可以理解为这两只青蛙分别把整个序列遍历了一遍,依次走过所有的点,找到最多相同的点的个数, ...
- MTK平台 GPU 相关知识
一.什么是Render script,以及mtk平台GPU support情况 [DESCRIPTION] 1.什么是RenderScript ? 2.RenderScript 干什么? 3.MTK平 ...
- LOJ#541. 「LibreOJ NOIP Round #1」七曜圣贤
有一辆车一开始装了编号0-a的奶茶,现有m次操作,每次操作Pi在[-1,b),若Pi为一个未出现过编号的奶茶,就把他买了并装上车:若Pi为一个在车上的奶茶,则把他丢下车:否则,此次操作为捡起最早丢下去 ...
- vim fulerformat的设置
在vim中设置选项,有注释很容易明白: set laststatus=1 "2总显示最后一个窗口的状态行,1窗口多于一个时显示最后一个窗口的状态行,0不显示最后一个窗口的状态行 fulerf ...
- Eclipse-Java代码规范和质量检查插件-PMD
PMD是一个源代码分析器. 它发现常见的编程缺陷,如未使用的变量.空catch块.不必要的对象创建等等. 它支持Java.JavaScript.Salesforce.com Apex.PLSQL.Ap ...
- Redis集群方案收集
说明: 如果不考虑客户端分片去实现集群,那么市面上基本可以说就三种方案最成熟,它们分别如下所示: 系统 贡献者 是否官方Redis实现 编程语言 Twemproxy Twitter 是 C Redis ...
- easyui根据id获取列索引
easyui根据row中的某个元素获取该列的索引,看了下api好像没有直接的方法,那只能自己写了 首先,id只是一个概念,不一定非得id,只要该列是唯一值,或者是主键就行. 假如我的列是这样的结构 { ...
- jenkinsapi出现HTTPConnectionPool Max retires exceeded异常
python项目通过使用jenkinsapi远程控制jenkins jenkinsapi使用的远程连接方法是requests包,requests包又使用了urllib3,urllib3又引用了http ...
- TP-Link的Atheros芯片的WR886n v5 安装SuperWRT系统
安装SuperWRT系统 本教程以TP-Link的Atheros芯片的WR886n v5为例,教新手如何刷入一个已支持设备的固件. 下载设备固件请访问:这里 (没有支持你的设备?自由动手一下:hack ...