解题:POI 2015 Pieczęć
发现好像没有什么好做法,那就模拟么=。=
以印章左上角的'x'为基准,记录印章上'x'的相对位置模拟。记录相对位置是因为可能有这种情况↓

直接模拟是会漏掉的=。=
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=;
int mapp[M][M],pos[N*N][];
int n,m,a,b,T,cnt,firx,firy;
char rd[N];
inline void i207M()
{
cnt=,firx=firy=-;
memset(mapp,,sizeof mapp);
}
inline bool judge()
{
register int i,j;
for(i=;i<=n;i++)
for(j=;j<=m;j++)
if(mapp[i][j]) return false;
return true;
}
inline bool print(int x,int y)
{
register int i;
for(i=;i<=cnt;i++)
{
int nx=x+pos[i][],ny=y+pos[i][];
if(!mapp[nx][ny]) return false;
if(nx>n||ny>m) return false;
mapp[nx][ny]=;
}
return true;
}
int main ()
{
register int i,j;
scanf("%d",&T);
while(T--)
{
i207M();
scanf("%d%d%d%d",&n,&m,&a,&b);
for(i=;i<=n;i++)
{
scanf("%s",rd+);
for(j=;j<=m;j++)
mapp[i][j]=(rd[j]=='x');
}
for(i=;i<=a;i++)
{
scanf("%s",rd+);
for(j=;j<=b;j++)
if(rd[j]=='x')
{
if(firx==-) firx=i,firy=j;
pos[++cnt][]=i-firx,pos[cnt][]=j-firy;
}
}
if(firx==-&&!judge()) {printf("NIE\n"); continue;}
bool f=true;
for(i=;i<=n&&f;i++)
for(j=;j<=m&&f;j++)
if(mapp[i][j]&&!print(i,j)) f=false;
(f&&judge())?printf("TAK\n"):printf("NIE\n");
}
return ;
}
解题:POI 2015 Pieczęć的更多相关文章
- 解题:POI 2015 PUS
题面 还以为是差分约束,原来拓扑排序也能解决这样的问题=.= 类似差分约束的建图方式,我们把大小关系看做有向边.这样一来图上是不允许存在环的,于是我们可以做拓扑排序.然后问题来了,边数非常大,根本建不 ...
- 解题:POI 2015 Kinoman
题面 发现每种电影只在两场之间产生贡献(只有$pos$的一场的就在$[pos,n]$产生贡献).那么我们针对每个位置$i$求出这场电影下一次出现的位置$nxt[i]$,然后每次更新一下,求整个区间的最 ...
- [BZOJ 3747] [POI 2015] Kinoman【线段树】
Problem Link : BZOJ 3747 题解:ZYF-ZYF 神犇的题解 解题的大致思路是,当区间的右端点向右移动一格时,只有两个区间的左端点对应的答案发生了变化. 从 f[i] + 1 到 ...
- Odwiedziny[POI 2015]
题目描述 给定一棵n个点的树,树上每条边的长度都为1,第i个点的权值为a[i]. Byteasar想要走遍这整棵树,他会按照某个1到n的全排列b走n-1次,第i次他会从b[i]点走到b[i+1]点,并 ...
- [POI 2015]Kinoman
Description 共有m部电影,编号为1~m,第i部电影的好看值为w[i]. 在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部. 你可以选择l,r(1<=l< ...
- POI题解整合
我也不知道为啥我就想把POI的题全都放到一篇blog里写完. POI 2005 SAM-Toy Cars 贪心,每次选下次出现最晚的. POI 2006 KRA-The Disks 箱子位置单调,所以 ...
- 2015 Multi-University Training Contest 6 solutions BY ZJU(部分解题报告)
官方解题报告:http://bestcoder.hdu.edu.cn/blog/2015-multi-university-training-contest-6-solutions-by-zju/ 表 ...
- 2015 German Collegiate Programming Contest (GCPC 15) + POI 10-T3(12/13)
$$2015\ German\ Collegiate\ Programming\ Contest\ (GCPC 15) + POI 10-T3$$ \(A.\ Journey\ to\ Greece\ ...
- [NOIP 2015]运输计划-[树上差分+二分答案]-解题报告
[NOIP 2015]运输计划 题面: A[NOIP2015 Day2]运输计划 时间限制 : 20000 MS 空间限制 : 262144 KB 问题描述 公元 2044 年,人类进入了宇宙纪元. ...
随机推荐
- Intellij IDEA破解激活
本文使用破解补丁激活Intellij IDEA 第一步:下载破解补丁(http://idea.lanyus.com/) 第二步:将下载好的补丁放置磁盘的任意位置,下面是我放置的位置 第三步:打开Int ...
- Unity Lighting - Light Types 灯光类型(八)
Light Types 灯光类型 We have now covered some of the project settings which need to be considered befo ...
- MATLAB 笔记
MATLAB的学习 Matlab 主要有5大部分构成,分别是MATLAB语言,桌面工具与开发环境,数学函数库 ,图形系统和应用程序接口.以及众多的专业工具.
- Hyperledger Fabric中的Identity
Hyperledger Fabric中的Identity 什么是Identity 区块链网络中存在如下的角色:peers, orderers, client application, administ ...
- C#判断字符串中是否有数字
// <summary> /// 提取字符串中的数字字符串 /// </summary> /// <param name="str"></ ...
- 详解Python中的下划线
本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情况下,会在以下3种场景中使用 ...
- “我爱淘”第二冲刺阶段Scrum站立会议4
完成任务: 完成了首页中的推荐功能,推荐的是最近添加的需要卖的书,注册功能实现了它,可以对数据库进行添加. 计划任务: 在客户端实现分类功能,通过学院的分类查看书籍. 遇到问题: 分类功能,根据不同学 ...
- C++ Primer Plus学习:第七章
C++入门第七章:函数-C++的编程模块 函数的基本知识 要使用C++函数,必须完成如下工作: 提供函数定义 提供函数原型 调用函数 库函数是已经定义和编译好的函数,可使用标准库头文件提供原型. 定义 ...
- 运维学习笔记(三)之T01-03TCP/IP
TCP/IP协议 简介 通信协议 信息从源传递到目的地的过程中,网络上各设备需要通信,描述网络通信“语言”的规范就是协议. 数据通信协议 决定数据的格式和传输的一组规则. TCP/IP协议简介 一组通 ...
- CentOS7安装.NET Core运行环境
安装.NET Core ->首先需要删除以前安装的版本 -> 获取安装脚本 curl -sSL https://raw.githubusercontent.com/dotnet/cli/r ...