Pieczęć(模拟)
题目描述
你有一个a*b的印章,有些格子是凸起(会沾上墨水)的。你需要判断能否用这个印章印出纸上的图案。印的过程中需要满足以下要求:
(1)印章不可以旋转。
(2)不能把墨水印到纸外面。
(3)纸上的同一个格子不可以印多次。
输入
接下来q个测试点,每个测试点中:
第一行包含4个整数n,m,a,b(1<=n,m,a,b<=1000)。
接下来n行,每行m个字符,描述纸上的图案。'.'表示留白,'x'表示需要染黑。
接下来a行,每行b个字符,描述印章。'.'表示不沾墨水,'x'表示沾墨水。
输出
样例输入
复制样例数据
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ęć(模拟)相关推荐
- bzoj 3750: [POI2015]Pieczęć(模拟)
3750: [POI2015]Pieczęć Time Limit: 10 Sec Memory Limit: 64 MB Submit: 309 Solved: 171 [Submit][Sta ...
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- curl模拟post请求
另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...
- flask_模拟请求post,get
#coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...
- 模拟内存计算如何解决边缘人工智能推理的功耗挑战
模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...
- 为放大器模拟输入模块提供可靠的输入过电压保护
为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...
- 模拟Servlet本质
JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...
- 2021年大数据Flink(四十):Flink模拟双十一实时大屏统计
目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...
- Python:模拟登录、点击和执行 JavaScript 语句案例
案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...
最新文章
- Android控件美化Shape
- linux bash基础
- 真正的自重...小偷可以灭绝
- MATLAB应用实战系列(五十四)-MATLAB多维度绘图实战应用案例
- 中间人攻击-http流量嗅探
- 【C语言】第八章 地址操作与指针 题解
- Windows Service Application Overview
- 常见RPM,YUM,DNF指令
- 同步PC和MAC OS X文件夹--arrsync-0.4.1
- Knockout v3.4.0 中文版教程-13-控制文本内容和外观-css绑定
- 堆中的路径(MOOC)
- Atitit session的概念总结
- 测试LOL帧数的软件,lol手游画质帧率修改器
- 服务器显示ipv4问题,IPv4会出现哪些问题
- ABAQUS内核及GUI方法的代理接口
- GOTC 大会预告 | Apache Pulsar PMC 成员翟佳:Apache Pulsar 架构设计与原理
- 【论文翻译 | AAAI-19】HACUD - 基于分层注意机制的属性异构信息网络现金用户检测
- 更改分类算法的阙值的资料
- 当 BBR 面对时延抖动
- MKS GEN_L V2.1使用说明书
热门文章
- 生产环境JVM内存大小配置
- Docker安装启动influxDB数据库及建库查询基本操作
- Python3赋值运算符
- springboot配置jasypt实现对配置文件敏感信息加密全流程详解
- mybatis修改mysql变量_Java通过MyBatis框架对MySQL数据进行增删查改的基本方法
- python二级多少分过_python二级操作题与分析(2)
- java命令运行class文件提示错误:找不到或无法加载主类
- 组合电路Verilog的几种描述方式
- python下载模块命令_python kafka模块操作命令集合
- mac系统python写文件_Mac中py文件转为.command文件,双击运行