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. 一道看完答案你会觉得很沙雕的「动态规划算法题」
  2. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决
  3. Qt Creator 使用技巧
  4. vbs调用WebService -- 使用xmlhttp
  5. Spring Boot : 自定义 Starter
  6. 论文阅读之ALBERT
  7. oracle 时间转换 1970,oracle 中将unix/linux时间戳进行转换(转)
  8. c语言求圆锥的表面积和体积_有关C语言:求圆锥体的体积和表面积,急!!!!!!1...
  9. 正态分布的概率密度函数 python_多元正态分布概率密度函数的三维绘图
  10. 自制hdmi线一头改vga图_破拆电脑VGA电缆以制作收音机天线零件:双目铁氧体磁芯...
  11. 设置了普通密码的excel打不开怎么办
  12. 2014广州入户新规则--广州积分入户8月1日起接受申报 详细指引
  13. 多波次导弹发射中的规划问题(二)
  14. 计算机实验室主要工作业绩范文,2020年实验室工作总结范文4篇
  15. Xsens ROS 节点 时间戳以及话题
  16. windows 查看开机关机日志
  17. 什么是大数据,大数据的处理流程介绍
  18. 考研英语阅读理解做题技巧(1):例证题
  19. python作业练习
  20. 文件夹加密软件推荐-文件夹加密超级大师

热门文章

  1. python语言能做什么-python语言用来干什么
  2. python 菜鸟-Python3 教程
  3. python入门经典100例-Python3经典100例(Python3入门习题) 含答案 doc版
  4. python编程入门与案例详解-python编程入门知识练习
  5. 用深度学习进行语音识别为什么还要算mfcc?
  6. grafana zabbix 模板_【Grafana教程】安装Grafana并配置Zabbix数据源
  7. JavaScript-声明变量的关键字
  8. Redis基础学习记录(1)
  9. 巴斯勒相机外部触发接线_2021新疆欧姆龙相机回收童嫂无欺
  10. 求完全二叉树结点个数(leetcode 222)