3750: [POI2015]Pieczęć

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 309  Solved: 171
[Submit][Status][Discuss]

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

从上往下从左往右遍历,只要遇到×就拿印章盖

然后更新,中间出现非法情况(比如不需要印的地方会被印,或者印出范围)就GG

#include<stdio.h>
typedef struct
{int x;int y;
}Point;
Point s[1000005];
int n, m, ok, cnt;
char str[1005][1005];
void Jud(int x, int y)
{int i, j, dx, dy;if(cnt==0)ok = 0;for(i=1;i<=cnt;i++){if(!ok)return;dx = x+s[i].x;dy = y+s[i].y;if(dx<1 || dx>n || dy<1 || dy>m || str[dx][dy]=='.')ok = 0;elsestr[dx][dy] = '.';}
}
int main(void)
{char ch;int T, a, b, i, j;scanf("%d", &T);while(T--){cnt = 0;scanf("%d%d%d%d", &n, &m, &a, &b);for(i=1;i<=n;i++)scanf("%s", str[i]+1);for(i=0;i<=a-1;i++){for(j=0;j<=b-1;j++){scanf(" %c", &ch);if(ch=='x')s[++cnt].x = i, s[cnt].y = j;}}for(i=cnt;i>=1;i--){s[i].y -= s[1].y;s[i].x -= s[1].x;}ok = 1;for(i=1;i<=n;i++){for(j=1;j<=m;j++){if(str[i][j]=='x')Jud(i, j);}}if(ok==0)printf("NIE\n");elseprintf("TAK\n");}return 0;
}
/*
2
3 4 2 2
xx..
.xx.
xx..
x.
.x
*/

bzoj 3750: [POI2015]Pieczęć(模拟)相关推荐

  1. BZOJ 5326 [JSOI2017]博弈 (模拟费用流、线段树)

    题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5326 题解 终于成为第8个A掉这题的人--orz tzw神仙早我6小时 本以为这东西常数 ...

  2. BZOJ 4946: [Noi2017]蔬菜 模拟费用流

    title BZOJ 4946 LUOGU 3826 简化题意: 定义了一种蔬菜为:\(ai,si,ci,xi\),意思是蔬菜的价格为 \(a_i\),第一份卖出时价格为 \(a_i+s_i\),一共 ...

  3. BZOJ 3747 POI2015 Kinoman 段树

    标题效果:有m点,每个点都有一个权值.现在我们有这个m为点的长度n该序列,寻求区间,它仅出现一次在正确的点区间内值和最大 想了很久,甚至神标题,奔说是水的问题--我醉了 枚举左点 对于每个请求留点右键 ...

  4. bzoj 3749: [POI2015]Łasuchy

    3749: [POI2015]Łasuchy Time Limit: 10 Sec  Memory Limit: 64 MBSec  Special Judge Submit: 355  Solved ...

  5. (全网最详细!)bzoj 2548 灭鼠行动 模拟 解题报告

    Description 最近,有一些繁殖力很强的老鼠在下水道非常猖獗,灭鼠特工队正在计划消灭这些老鼠.下水道只有东西方向和南北方向的管道,如图所示. 灭鼠特工队的队员拥有强大的武器.他们将在某些时刻t ...

  6. [Luogu P3597] [BZOJ 4386] [POI2015]WYC

    洛谷传送门 BZOJ传送门 题目描述 给定一张nnn个点mmm条边的带权有向图,每条边的边权只可能是111,222,333中的一种.将所有可能的路径按路径长度排序,请输出第kkk小的路径的长度,注意路 ...

  7. @bzoj - 4384@ [POI2015] Trzy wieże

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 n 的仅包含'B'.'C'.'S'三种字符的字符 ...

  8. bzoj 3747: [POI2015]Kinoman

    (颓废扒题解2333) 给颜色的下一个出现位置记录一下,然后每次只有第一个颜色的出现位置和下一个出现位置之间会产生这种颜色的价值,所以用线段树维护一下区间. 那么现在就只需要把整个的数列从1-> ...

  9. bzoj 1024 [SCOI2009]生日快乐——模拟

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1024 可以枚举这边放多少块.那边放多少块. 注意精度.不要每次用x*y/base算有多少块, ...

最新文章

  1. 用javascript实现仿163的js广告向下挤压页面的效果
  2. js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
  3. 职业生涯第二年回顾(2011.2~2012.2)
  4. PostMan怎样携带登录信息请求后台接口防止出现无法访问资源问题
  5. android 安全讲座第三层 linux权限基础知识
  6. 基于Qt的光盘刻录开发
  7. Codevs 1205 单词反转(Vector以及如何输出string)
  8. 类worksheet的paste方法无效_英雄档案——类人体
  9. 前缀列表技术原理和实验(华为设备)
  10. ps怎么把图片透明化
  11. 徐思201771010132《面向对象程序设计(java)》第九周学习总结
  12. 0x80004005是什么错误?0x80004005的解决方案
  13. Greenplum5推出跨云能力,并与阿里云和腾讯云合作落地
  14. 理解openssl协议:x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼? 如何给自己网站颁发证书?
  15. 软考题目快速学习法(个人笔记)
  16. 关于一道你们眼中的水题 Windy数 的乱写(数位dp)
  17. 1. 系统符号与正则符号
  18. 产品定位--如何进行互联网产品定位/制定产品目标?
  19. 我的开源项目,趣享GIF源代码已正式公开
  20. qml+opencv3.1简单打开摄像头,关闭摄像头

热门文章

  1. python3安装步骤-Mac安装python3的方法步骤
  2. python自学行吗-没有编程基础,可以自学Python吗?
  3. python主要用来做什么-python主要用来做什么?Python开发简单吗?
  4. 简单python脚本实例-python常用运维脚本实例
  5. 语音识别是什么意思_语音识别的翻译_音标_读音_用法_例句_爱词霸在线词典
  6. vue富文本编辑器 Vue-Quill-Editor
  7. 【Servlet笔记】Servlet入门
  8. 【离散数学笔记】计数原理:解决计数问题的基本方法
  9. paypal如何支付欧元_国际在线支付巨头——PayPal
  10. mysql数据库函数详解_MySQL数据库之字符函数详解