ZJNU 1535 - 新建的大楼--中高级
因为从俯视图看,输入输出的视角是从右下方看向左上方的
所以左上角的正方体最有可能被其他正方体挡住
立体上,底部的正方体最有可能被顶部的正方体挡住
所以绘图应该从后往前,从下往上绘制
剩下的就是一大堆计算和判断了
采用的是先绘制出规范的图再与输入的图做对比的方式
#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 ;
}
ZJNU 1535 - 新建的大楼--中高级的更多相关文章
- IT基础架构规划方案一(网络系统规划)
		
背景 某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...
 - Atitit s2018.2 s2 doc list on home ntpc.docx    \Atiitt uke制度体系  法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别  讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化  每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
		
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
 - ZJNU 1542 - 三角形(续)--中高级
		
从小到大排序后 先固定一遍,另外两边递增查找 即固定 i,j=i+1,k=j+1 然后让k递增到 a[i]+a[j]<=a[k] 时 此时不能凑成一个三角形 答案增加 k-1-j 组 此时不需要 ...
 - ZJNU 1310 - 排队——中高级
		
蒟蒻做法:追踪1号队员,取他回到原来位置需要的次数 /* Written By StelaYuri */ #include<stdio.h> int main(){ int T,t,n,a ...
 - ZJNU 1262 - 电灯泡——中高级
		
在影子没有到达墙角前,人越远离电灯,影子越长,所以这一部分无需考虑 所以只需要考虑墙上影子和地上影子同时存在的情况 因为在某一状态存在着最值 所以如果以影子总长与人的位置绘制y-x图像 会呈一个类似y ...
 - ZJNU 1130 - 龟兔赛跑——中高级
		
只需求出乌龟最短耗时跟兔子耗时比即可将起点 0 和终点 N+1 也看做充电站,进行动态规划对第i个点进行动态规划,则可以得到状态转移方程为dp[i] = max{dp[j]+time[i][j]} j ...
 - hdu 1535 Invitation Cards
		
http://acm.hdu.edu.cn/showproblem.php?pid=1535 这道题两遍spfa,第一遍sfpa之后,重新建图,所有的边逆向建边,再一次spfa就可以了. #inclu ...
 - 大楼轮廓 · building-outline
		
[抄题]: 水平面上有 N 座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示 (start, end, height),分别代表其在x轴上的起点,终点和高度.大楼之间从远处看可能会重叠,求出 N ...
 - Partition1:新建分区表
		
未分区的表,只能存储在一个FileGroup中:对Table进行分区后,每一个分区都存储在一个FileGroup,或分布式存储在不同的FileGroup中.对表进行分区的过程,是将逻辑上完整的一个表, ...
 
随机推荐
- Spark 内存管理
			
Spark 内存管理 Spark 执行应用程序时, 会启动 Driver 和 Executor 两种 JVM 进程 Driver 负责创建 SparkContext 上下文, 提交任务, task的分 ...
 - apt-get install oracle-java8-installer时Err:7 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial/main amd64 Packages 404 not found
			
所有其他网址都有效,而不是amd64端点. 然后,当运行apt-get install oracle-java8-installer时,出现以下错误: Package oracle-java8-ins ...
 - 洛谷 P1043 数字游戏
			
题目传送门 解题思路: 跟石子合并差不多,区间DP(环形),用f[i][j][s]表示从i到j分成s段所能获得的最大答案,枚举断点k,则f[i][j][s] = min(f[i][j][s],f[i] ...
 - HZNU-ACM寒假集训Day1小结    STL 并查集
			
常用STL 1.优先队列 priority_queue 内部是用堆(heap)实现的 priority_queue<int> pq; 默认为一个“越小的整数优先级越低的优先队列” 对于一些 ...
 - git修改已经push的commit message
			
git中修改上一次提交的commit的message git commit --amend -m "你的新的注释" git push -f 多个commit https://www ...
 - 尝试用kotlin做一个app(四)
			
本来是应该为主页加载数据库数据了,但是想着做后台,之前写jsp后台写吐了,所以先拖几天.把之前的代码完善一下,或者添加些新内容. ...... 多个fragment切换卡顿 首先修正一个bug.从主页 ...
 - ArchLinux安装Gnome桌面
			
给Arch安装Gnome桌面美化及常用软件配置 一.创建普通用户 1.安装zsh 个人比较喜欢的一个shell,你们可以和我不同 # pacman -S zsh 2.创建用户 kain是我创建用户的名 ...
 - redis(四)----发布订阅
			
发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合.pub /sub不仅仅解决发布者和订阅者直接代码级别耦合,也解决两者在物理部署上的耦合.废话不多说,直接 ...
 - HDU 5428:The Factor
			
The Factor Accepts: 101 Submissions: 811 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
 - jQuery实现轮播图--入门
			
jQuery是一个前台的框架. 主要函数: setInterval 语法:setInterval(code,millisec[,"lang"]) cdoe:需要执行的代码或者要调用 ...