BZOJ 3750: [POI2015]Pieczęć 【模拟】
Description
一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色。
你有一个a*b的印章,有些格子是凸起(会沾上墨水)的。你需要判断能否用这个印章印出纸上的图案。印的过程中需要满足以下要求:
(1)印章不可以旋转。
(2)不能把墨水印到纸外面。
(3)纸上的同一个格子不可以印多次。
Input
第一行一个整数q(1<=q<=10),表示测试点数量。
接下来q个测试点,每个测试点中:
第一行包含4个整数n,m,a,b(1<=n,m,a,b<=1000)。
接下来n行,每行m个字符,描述纸上的图案。'.'表示留白,'x'表示需要染黑。
接下来a行,每行b个字符,描述印章。'.'表示不沾墨水,'x'表示沾墨水。
Output
对于每个测试点,输出TAK(是)或NIE(否)。
Sample Input
2
3 4 4 2
xx..
.xx.
xx..
x.
.x
x.
..
2 2 2 2
xx
xx
.x
x.
Sample Output
TAK
NIE
HINT
Source
思路:由于左上的点肯定是对应的 因此每次寻找左上的点 把印章里的点覆盖掉 模拟一边即可
#include<cstdio>
#include<string.h>
#include<algorithm>
#define maxn 1009
using namespace std;
struct T
{int x;int y;}z[maxn*maxn];
int h,a,b,c,d,ma[maxn][maxn],t;
char ch[maxn];
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d%d%d",&a,&b,&c,&d);
for(int i=1;i<=a;i++){
scanf("%s",ch+1);
for(int j=1;j<=b;j++)if(ch[j]=='.')ma[i][j]=1;else ma[i][j]=2;
}
int flag=h=0;
for(int i=1;i<=c;i++){
scanf("%s",ch+1);
for(int j=1;j<=d;j++)
if(ch[j]=='x'&& flag==0)flag=1,z[++h].x=i,z[h].y=j;
else if(ch[j]=='x')z[++h].x=i-z[1].x,z[h].y=j-z[1].y;
}flag=0;
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
if(ma[i][j]==2){ma[i][j]=1;
for(int k=2;k<=h;k++){
if(x>=1&&y>=1&&ma[i+z[k].x][j+z[k].y]==2)ma[i+z[k].x][j+z[k].y]=1;
else{flag=1;break;}
}if(flag==1)break;
}
}if(flag==1)break;
}
if(flag==0)printf("TAK\n");else printf("NIE\n");
for(int i=1;i<=a;i++)for(int j=1;j<=b;j++)ma[i][j]=0;
}
return 0;
}
BZOJ 3750: [POI2015]Pieczęć 【模拟】的更多相关文章
- @bzoj - 3750@ [POI2015] Pieczęć
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一张 n*m 的方格纸,有些格子需要印成黑色,剩下的格子需要保留 ...
- [POI2015]Pieczęć
[POI2015]Pieczęć 题目大意: 一张\(n\times m(n,m\le1000)\)的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色. 你有一个\(a\times b(a,b\l ...
- bzoj 4386: [POI2015]Wycieczki
bzoj 4386: [POI2015]Wycieczki 这题什么素质,爆long long就算了,连int128都爆……最后还是用long double卡过的……而且可能是我本身自带大常数吧,T了 ...
- BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5326 题解 终于成为第8个A掉这题的人--orz tzw神仙早我6小时 本以为这东西常数 ...
- BZOJ 4385: [POI2015]Wilcze doły
4385: [POI2015]Wilcze doły Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 648 Solved: 263[Submit][ ...
- BZOJ 4384: [POI2015]Trzy wieże
4384: [POI2015]Trzy wieże Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 217 Solved: 61[Submit][St ...
- Bzoj 3747: [POI2015]Kinoman 线段树
3747: [POI2015]Kinoman Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 553 Solved: 222[Submit][Stat ...
- bzoj 2741: 【FOTILE模拟赛】L 分塊+可持久化trie
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1116 Solved: 292[Submit][Status] ...
- BZOJ 3747 POI2015 Kinoman 段树
标题效果:有m点,每个点都有一个权值.现在我们有这个m为点的长度n该序列,寻求区间,它仅出现一次在正确的点区间内值和最大 想了很久,甚至神标题,奔说是水的问题--我醉了 枚举左点 对于每个请求留点右键 ...
随机推荐
- iOS7.1企业应用"无法安装应用程序 因为证书无效"的解决方案
今天升级了iOS7.1后发现通过之前的url无法安装企业应用了,一直提示“无法安装应用程序 因为http://xxx.xxx.xxx证书无效”,折腾了一番,终于在StackOverFlow上找到了答案 ...
- 微擎框架中receive.php代码分析
- Web项目之Django实战问题剖析
基于AdminLTE-master模板的后台管理系统 左侧菜单栏的二级标签设计 面包屑 Django文件上传 后台管理系统CRM项目设计流程分析
- 三. python面向对象
第七章.面向对象基础 1.面向对象基础 类和对象: a. 创建类 class 类名: def 方法名(self,xxx): pass b. 创建对象 对象 = 类名() c. 通过对象执行方法 对象. ...
- 121. Best Time to Buy and Sell Stock@python
Say you have an array for which the ith element is the price of a given stock on day i. If you were ...
- bzoj5469 [FJOI2018]领导集团问题
题目描述: bz luogu 题解: 相当于树上$LIS$问题. 考虑一维情况下的贪心,我们可以用multiset启发式合并搞. 代码: #include<set> #include< ...
- The twelve Day-前端之html
前端知识之html内容 HTML介绍 1.web服务本质 import socket sk = socket.socket() sk.bind(()) sk.listen() while True: ...
- 【mysql】返回非空值 COALESCE 用法
在mysql中,其实有不少方法和函数是很有用的,这次介绍一个叫coalesce的,拼写十分麻烦,但其实作用是将返回传入的参数中第一个非null的值,比如 SELECT COALESCE(NULL, N ...
- python爬虫入门六:Selenium库
在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析HTML代码获取,这些数据是通过AJAX异步加载方式或经过JS渲染后才呈现在页面上显示出来. selenuim是一种自动化测试工具, ...
- 笔记-python-字符串格式化-format()
笔记-python-字符串格式化-format() 1. 简介 本文介绍了python 字符串格式化方法format()的常规使用方式. 2. 使用 2.1. Accessi ...