[题单练习] 大模拟题

看完题后不知所措

P1058 [NOIP2008 普及组] 立体图 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

简单来说,题目要我们按照输入,把立体图画出来,先放张图来震撼一下

看题解,题解的思路如下:

1. 先把一个积木块存入数组里

char Stick[6][7]=
{
    "  +---+",
    " /   /|",
    "+---+ |",
    "|   | +",
    "|   |/ ",
    "+---+  "
};//单个方块 

2. 然后,明确存放顺序

按照从低到高,从后往前,从左到右的顺序来放其它积木块。(为什么是这个顺序?为了覆盖!根据视觉效果,上面的会覆盖下面的,所以先把下面的存入数组,后存入数组的下面的积木就会覆盖之前的字符串,达到视觉效果,同样的,从后往前,从左到右也是这个道理)

3. 计算,位置ij的积木应该放在结果数组的哪里

用了坐权转换

被题解转换坐标的做法帅一脸(看的时候,枯坐两小时,就是没看出来是在干什么,后来才发现是把c里面放着是另一个视角下的,就是下图中分界线上面的那个,下面的那个是从max_x到1进行打印出来的)

这样做原因就是说,因为第一个放置的积木,它的开始坐标会受到最高的积木的高度和数值n的影响,n的影响方便计算,但是高度就不好计算了(毕竟还有其它的积木)。

如果我们以整体图形左下角为 [1][1] 的话,就不会有这个烦恼了。

担心侵权所以就不放代码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值