【JZOJ4761】【NOIP2016提高A组模拟9.7】鼎纹
题目描述
输入
输出
样例输入
2
3 4 4 2
1100
0110
1100
10
01
10
00
2 2 2 2
11
11
01
10
样例输出
YES
NO
数据范围
解法
由于鼎纹中的第一个1必须被铜模中的第一个1覆盖,那么就用铜模覆盖掉鼎纹的第一个1,相应地继续枚举,每枚举到一个1就覆盖一次。
代码
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
const char* fin="aP1.in";
const char* fout="aP1.out";
const int inf=0x7fffffff;
const int maxn=2007;
int read(){
char ch=getchar();
int x=0;
while (ch<'0' || ch>'9') ch=getchar();
while (ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();
return x;
}
int t,t1,n1,m1,n2,m2,i,j,k,l,sx[2],sy[2],tx[2],ty[2],tmp,tmd;
char a[maxn][maxn];
char b[maxn][maxn];
int c[maxn*maxn][2],tot;
int az[maxn],bz[maxn][maxn],id;
int main(){
scanf("%d",&t);
for (t1=1;t1<=t;t1++){
scanf("%d%d%d%d\n",&n1,&m1,&n2,&m2);
sx[0]=sx[1]=inf;
tx[0]=tx[1]=0;
//----------------------------------------------------------
id++;
for (i=1;i<=n1;i++) {
scanf("%s",a[i]+1);
for (j=1;j<=m1;j++){
if (a[i][j]=='1'){
sx[0]=min(sx[0],j);
tx[0]=max(tx[0],j);
az[i]=id;
}
}
scanf("\n");
}
for (i=1;i<=n1;i++) if (az[i]==id) {sy[0]=i;break;}
for (i=n1;i;i--) if (az[i]==id) {ty[0]=i;break;}
//----------------------------------------------------------
id++;tot=0;
for (i=1;i<=n2;i++) {
scanf("%s",b[i]+1);
for (j=1;j<=m2;j++){
if (b[i][j]=='1'){
c[++tot][0]=i;
c[tot][1]=j;
if (tot==1) tmp=c[1][0],tmd=c[1][1];
c[tot][0]-=tmp;
c[tot][1]-=tmd;
sx[1]=min(sx[1],j);
tx[1]=max(tx[1],j);
az[i]=id;
}
}
scanf("\n");
}
for (i=1;i<=n2;i++) if (az[i]==id) {sy[1]=i;break;}
for (i=n2;i;i--) if (az[i]==id) {ty[1]=i;break;}
if (sx[0]==inf) {
printf("YES\n");
continue;
}
if (sx[1]==inf) {
printf("NO\n");
continue;
}
//----------------------------------------------------------
//printf("%d %d %d %d %d %d %d %d\n",sx[0],sy[0],tx[0],ty[0],sx[1],sy[1],tx[1],ty[1]);
bool no=false;
for (i=sy[0];i<=ty[0];i++){
for (j=sx[0];j<=tx[0];j++){
if (bz[i][j]<t1 && a[i][j]=='1'){
for (k=1;k<=tot;k++){
tmp=i+c[k][0];
tmd=j+c[k][1];
if (tmp<=ty[0] && tmd<=tx[0] && bz[tmp][tmd]<t1 && a[tmp][tmd]=='1') bz[tmp][tmd]=t1;
else{
printf("NO\n");
no=true;
break;
}
}
}
if (no) break;
}
if (no) break;
}
if (!no) printf("YES\n");
}
return 0;
}
【JZOJ4761】【NOIP2016提高A组模拟9.7】鼎纹的更多相关文章
- JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数
4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms Memory Limits: 262144 KB Detailed ...
- 【NOIP2016提高A组模拟9.14】数列编辑器
题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...
- 【NOIP2016提高A组模拟9.24】总结
第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...
- 【JZOJ4746】【NOIP2016提高A组模拟9.3】树塔狂想曲
题目描述 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映射到该数塔上行 ...
- 【JZOJ4745】【NOIP2016提高A组模拟9.3】看电影
题目描述 听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影.可是省常中OI队的同学们共有 N(N >= K)人.于是机智的你想到了一个 ...
- 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导
题目描述 输入 输出 样例输入 2x^2+3x+1 样例输出 4x+3 数据范围 样例解释 求导的意思: 多项式是由若干个单项式构成的 单项式的一般形式是ax^b,其中ab都是常数,x是自变量 对于单 ...
- 【JZOJ4787】【NOIP2016提高A组模拟9.17】数格子
题目描述 输入 输出 样例输入 1 10000 3 10000 5 10000 0 0 样例输出 1 11 95 数据范围 每个测试点数据组数不超过10组 解法 状态压缩动态规划. 设f[i][j]表 ...
- [jzoj 4668] [NOIP2016提高A组模拟7.19] 腐败 解题报告(质数分类+慢速乘)
题目链接: http://172.16.0.132/senior/#main/show/4668 题目: 题解: 考虑把A数组里的每个元素分解质因数,对于每个质因数开一个vector存一下包含这个质因 ...
- [jzoj 4722] [NOIP2016提高A组模拟8.21] 跳楼机 解题报告 (spfa+同余)
题目链接: http://172.16.0.132/senior/#main/show/4722 题目: DJL为了避免成为一只咸鱼,来找srwudi学习压代码的技巧.Srwudi的家是一幢h层的摩天 ...
随机推荐
- HZOI20190818模拟25题解
题面:https://www.cnblogs.com/Juve/articles/11372379.html A:字符串 其实是CATALAN数水题... 和网格一毛一样:https://www.cn ...
- 使用cmd查看windows端口占用情况,并关闭应用
在做开发的时候常常会遇到端口被占用的问题,下面是我在网上找的比较好用的一种关闭占用端口进程的方法 1.在运行中输入cmd打开dos命令窗口,比如我想找到端口8888对应的PID(通过PID找到相应的进 ...
- OSGi.NET使用笔记
一手资料来源于“开放工厂”,以下程序将会引用到一个核心文件UIShell.OSGi.dll 目前我对于OSGi这个框架的理解就是,主程序搜索并加载插件,以插件方式开放,便于扩展. 现在开始正式的旅程. ...
- x86架构:x86架构
ylbtech-x86架构:x86架构 X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令 ...
- 从web.xml入手分析jeecms配置文件
web.xml文件是web系统的核心配置文件,里面的所有配置都会加载的运行时的web容器,从她可以了解到整个web项目的配置情况.jeecms的所有配置文件都在config文件夹下面,通过web. ...
- 进一步封装poco下的mysql操作
为方便程序对mysql操作,我对poco的mysql进行了再次封装,主要是针对自己应用需要的部分. 开发工具:netbean 系统环境:centos7 poco版本: poco-1.9.0-all 主 ...
- CString转const char
CString转换成const char 需要考虑一个因素: 你使用是否为unicode 不使用unicode: CString Cstr("aaaaaaa"); co ...
- TZOJ 4651 zry和他的的灯泡们(lca)
描述 zry有一个收集灯泡的习惯,他把灯泡的阴极都共地,阳极连成一颗树,这样的话,他只要在任意一个灯泡的阳极加上合适的电压,所有灯泡都能亮起来.不幸的是,有一对灯泡之间的阳极连线断掉了,这样的话,这颗 ...
- Django项目:CRM(客户关系管理系统)--44--36PerfectCRM实现King_admin密码修改
# king_urls.py # ————————02PerfectCRM创建ADMIN页面———————— from django.conf.urls import url from king_ad ...
- agc003E Sequential operations on Sequence
题意: 有一个数字串S,初始长度为n,是1 2 3 4 …… n. 有m次操作,每次操作给你一个正整数a[i],你先把S无穷重复,然后把前a[i]截取出来成为新的S. 求m次操作后,每个数字在S中出现 ...