题目描述

一张n*m的方格纸,有些格子需要印成黑色,剩下的格子需要保留白色。
你有一个a*b的印章,有些格子是凸起(会沾上墨水)的。你需要判断能否用这个印章印出纸上的图案。印的过程中需要满足以下要求:
(1)印章不可以旋转。
(2)不能把墨水印到纸外面。
(3)纸上的同一个格子不可以印多次。

输入

第一行一个整数q(1<=q<=10),表示测试点数量。
接下来q个测试点,每个测试点中:
第一行包含4个整数n,m,a,b(1<=n,m,a,b<=1000)。
接下来n行,每行m个字符,描述纸上的图案。'.'表示留白,'x'表示需要染黑。
接下来a行,每行b个字符,描述印章。'.'表示不沾墨水,'x'表示沾墨水。

输出

对于每个测试点,输出TAK(是)或NIE(否)。

样例输入

复制样例数据

2
3 4 4 2
xx..
.xx.
xx..
x.
.x
x.
..
2 2 2 2
xx
xx
.x
x.

样例输出

TAK
NIE
记下印章中x的相对位置
找最左上角的没有被印到的x  然后依次匹配印章 匹配到的地方用vis++记录最后判断是x的地方vis是否等于1  是.的地方vis是否等于0

代码:
#include <bits/stdc++.h>using namespace std;
int cnt;
const int maxn = 1005;
char Mp[maxn][maxn];
char Yz[maxn];
int vis[maxn][maxn]; int n,m,a,b; struct node{ int x,y; }book[maxn*maxn]; int op(int x,int y) { for(int i=1;i<cnt;i++){ int xx = x+book[i].x; int yy = y+book[i].y; if(xx>n||yy>m||xx<1||yy<1) return 1; else vis[xx][yy]++; } return 0; } int pd() { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(Mp[i][j]=='x'&&vis[i][j]!=1){ return 0; } if(Mp[i][j]=='.'&&vis[i][j]!=0){ return 0; } } } return 1; } int main() { int T; scanf("%d",&T); while(T--) { memset(vis,0,sizeof(vis)); scanf("%d%d%d%d",&n,&m,&a,&b); for(int i=1;i<=n;i++) scanf("%s",Mp[i]+1); cnt = 0; int inx,iny; for(int i=1;i<=a;i++) { scanf("%s",Yz+1); for(int j=1;j<=b;j++) { if(Yz[j]=='x'){ if(!cnt){ inx = i; iny = j; cnt++; } else{ book[cnt].x = i-inx; book[cnt++].y = j-iny; } } } } int flag = 0; for(int i=1;i<=n;i++) { if(flag) break; for(int j=1;j<=m;j++) { if(Mp[i][j]=='x'&&!vis[i][j]) { vis[i][j]++; flag = op(i,j); if(flag) break; } } } if(flag) { printf("NIE\n"); continue; } if(pd()) printf("TAK\n"); else printf("NIE\n"); } }

转载于:https://www.cnblogs.com/hao-tian/p/10163366.html

Pieczęć(模拟)相关推荐

  1. bzoj 3750: [POI2015]Pieczęć(模拟)

    3750: [POI2015]Pieczęć Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 309  Solved: 171 [Submit][Sta ...

  2. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  3. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  4. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  5. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  6. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  7. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  8. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  9. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

最新文章

  1. Android控件美化Shape
  2. linux bash基础
  3. 真正的自重...小偷可以灭绝
  4. MATLAB应用实战系列(五十四)-MATLAB多维度绘图实战应用案例
  5. 中间人攻击-http流量嗅探
  6. 【C语言】第八章 地址操作与指针 题解
  7. Windows Service Application Overview
  8. 常见RPM,YUM,DNF指令
  9. 同步PC和MAC OS X文件夹--arrsync-0.4.1
  10. Knockout v3.4.0 中文版教程-13-控制文本内容和外观-css绑定
  11. 堆中的路径(MOOC)
  12. Atitit session的概念总结
  13. 测试LOL帧数的软件,lol手游画质帧率修改器
  14. 服务器显示ipv4问题,IPv4会出现哪些问题
  15. ABAQUS内核及GUI方法的代理接口
  16. GOTC 大会预告 | Apache Pulsar PMC 成员翟佳:Apache Pulsar 架构设计与原理
  17. 【论文翻译 | AAAI-19】HACUD - 基于分层注意机制的属性异构信息网络现金用户检测
  18. 更改分类算法的阙值的资料
  19. 当 BBR 面对时延抖动
  20. MKS GEN_L V2.1使用说明书

热门文章

  1. 生产环境JVM内存大小配置
  2. Docker安装启动influxDB数据库及建库查询基本操作
  3. Python3赋值运算符
  4. springboot配置jasypt实现对配置文件敏感信息加密全流程详解
  5. mybatis修改mysql变量_Java通过MyBatis框架对MySQL数据进行增删查改的基本方法
  6. python二级多少分过_python二级操作题与分析(2)
  7. java命令运行class文件提示错误:找不到或无法加载主类
  8. 组合电路Verilog的几种描述方式
  9. python下载模块命令_python kafka模块操作命令集合
  10. mac系统python写文件_Mac中py文件转为.command文件,双击运行