NOIP提高组 鼎纹
来源:互联网 发布:电视盒子免费视频软件 编辑:程序博客网 时间:2024/05/17 09:31
Description
Data Constraint
Solution
我们发现,当我们搜到一个点为1,它的上方和右方的点都为0,那么显然我们只能用铜模的第一个为1的点对应覆盖上去。所以我们按照这样的思想,判断是否会减为负数即可。时间复杂度为O(N2 )。
代码
#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;const int maxn=1005;int i,j,t,k,l,l1,x,y,r,b[maxn][maxn],a[maxn][maxn],c[maxn][maxn];int d[maxn*maxn][2],n,m,n1,m1,p,q,num;bool bz[maxn][maxn],bz1;char ch[maxn];int main(){// freopen("data.in","r",stdin); scanf("%d\n",&l1); while (l1){ l1--; scanf("%d%d%d%d\n",&n,&m,&n1,&m1); for (i=1;i<=n;i++){ scanf("%s\n",&ch); for (j=0;j<=m-1;j++) a[i][j+1]=ch[j]-48; }x=y=0;num=0; for (i=1;i<=n1;i++){ scanf("%s\n",&ch); for (j=0;j<m1;j++){ b[i][j+1]=ch[j]-48; if (b[i][j+1]){ if (!x && !y) x=i,y=j+1; d[++num][0]=i-x;d[num][1]=j+1-y; } } } bz1=true; for (i=1;i<=n;i++) for (j=1;j<=m;j++){ if (!bz1) break; if (!a[i][j]) continue; for (k=1;k<=num;k++){ a[i+d[k][0]][j+d[k][1]]--; if (a[i+d[k][0]][j+d[k][1]]<0){ bz1=false;break; } } if (!bz1) break; } if (!bz1) printf("NO\n"); else printf("YES\n"); }}
3 0
- NOIP提高组 鼎纹
- NOIP提高组 单峰
- NOIP提高组 积木
- NOIP提高组 看电影
- NOIP提高组 千帆渡
- NOIP提高组 Brothers
- NOIP提高组 Crisis
- NOIP提高组 Word
- NOIP提高组 闭门造车
- NOIP提高组 爬山
- 【NOIP提高组】爬山
- 【NOIP提高组】Map
- 【NOIP提高组】矩阵
- 【NOIP提高组】整除
- 【NOIP提高组】神炎皇
- 【NOIP提高组】降雷皇
- 【NOIP提高组】幻魔皇
- 【NOIP提高组】B
- Dalvik虚拟机的运行过程分析
- upgrade_tool ef失败
- 关于Request
- Flex框架-甘特图开发
- 渗透之突破ssl嗅探
- NOIP提高组 鼎纹
- Android中xml tools属性详解
- sphinx+scws 全文检索使用之 安装配置篇
- 集体智慧和协同过滤
- REDIS实践之使用sort set完成商品筛选排序
- 探索Android软键盘的疑难杂症
- C++中throw异常
- 基于django框架编写的简单信息采集系统
- 通过网络Url下载图片并下载到本地相册