因为从俯视图看,输入输出的视角是从右下方看向左上方的

所以左上角的正方体最有可能被其他正方体挡住

立体上,底部的正方体最有可能被顶部的正方体挡住

所以绘图应该从后往前,从下往上绘制

剩下的就是一大堆计算和判断了

采用的是先绘制出规范的图再与输入的图做对比的方式

#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 ;
}

最新文章

  1. 日历组件 原生js
  2. ElasticSearch大数据分布式弹性搜索引擎使用
  3. Createjs学习一
  4. Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建
  5. Oracle基础 数据泵导出/导入Expdp/impdp(转)
  6. Codevs 1009 产生数
  7. inet_ntoa将客户端的IP和port写入M…
  8. Oracle数据库创建用户小结
  9. laravel项目使用twemproxy部署redis集群
  10. shell echo/read/printf/流程控制章节笔记
  11. Git Submodule管理项目子模块
  12. [转] Javascript 原型链
  13. python3.5环境配置
  14. 【一步步学OpenGL 20】 -《点光源》
  15. WordCount扩展与优化
  16. C#调用cmd命令
  17. Linux 文本编辑器 vim
  18. mmc生产任务分配问题续
  19. Java如何以不同国家的格式显示时间?
  20. chattr lsattr

热门文章

  1. pop3&amp;smtp
  2. ACM-奇特的立方体
  3. Java进阶之路 - 1.走近Java
  4. 花了一周整理的,这是价值10W的32个Python项目!
  5. 【转】CSS实现自适应分隔线的N种方法
  6. Aizu 2155 Magic Slayer 背包DP
  7. css代码实现列表等宽
  8. day23(023-递归练习)
  9. Linux学习-第二章(命令)20200216
  10. Notepad++配置