ZJNU 1535 - 新建的大楼--中高级
2024-09-07 05:43:19
因为从俯视图看,输入输出的视角是从右下方看向左上方的
所以左上角的正方体最有可能被其他正方体挡住
立体上,底部的正方体最有可能被顶部的正方体挡住
所以绘图应该从后往前,从下往上绘制
剩下的就是一大堆计算和判断了
采用的是先绘制出规范的图再与输入的图做对比的方式
#include<stdio.h>
#include<string.h>
int n,m,ar[][];
char ori[][],bd[][],node[][]={
"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+.."
};
void dr(int x,int y){
int i,j;
for(i=;i<;i++)
for(j=;j<;j++)
if(node[i][j]!='.')
bd[x+i][y+j]=node[i][j];
}
int main(){
int i,j,h=-,w,x,y;
scanf("%d%d",&n,&m);
for(i=;i<n;i++)
for(j=;j<m;j++)
scanf("%d",&ar[i][j]);
getchar();
while(gets(ori[++h]));
w=strlen(ori[]);
for(i=;i<h;i++)
memset(bd[i],'.',w);
for(i=;i<n;i++)
for(j=;j<m;j++){
x=h-(+*n)+*i;
y=(n-)*+*j-*i;
while(ar[i][j]--){
dr(x,y);
x-=;
}
}
for(i=;i<h;i++)
for(j=;j<w;j++)
if(bd[i][j]!=ori[i][j]){
puts("NO");
return ;
}
puts("YES"); return ;
}
最新文章
- 日历组件 原生js
- ElasticSearch大数据分布式弹性搜索引擎使用
- Createjs学习一
- Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
- Codevs 1009 产生数
- inet_ntoa将客户端的IP和port写入M…
- Oracle数据库创建用户小结
- laravel项目使用twemproxy部署redis集群
- shell echo/read/printf/流程控制章节笔记
- Git Submodule管理项目子模块
- [转] Javascript 原型链
- python3.5环境配置
- 【一步步学OpenGL 20】 -《点光源》
- WordCount扩展与优化
- C#调用cmd命令
- Linux 文本编辑器 vim
- mmc生产任务分配问题续
- Java如何以不同国家的格式显示时间?
- chattr lsattr