P1058 立体图
链接:Miku
------------------------------
蒟蒻在线%lmk,ljx,lpy,yyq大佬们
------------------------------
Good Night Good luck
---------------------------
这是一道巨大的模拟题,我的做法是创建一块大画布,然后从后往前覆盖即可,具体实现,离不开代码
-----------------------------
#include<iostream>
#include<cstdio>
using namespace std;
int m,n;
char sin[][]={
" +---+",
" / /|",
"+---+ |",
"| | +",
"| |/",
"+---+",
};
char ma[][];
int maxx;
int maxy;
int l[]={,,,,,};
int r[]={,,,,,};
int mapp[][];
void draw(int x,int y){
for(int i=;i>=;--i){//倒序
for(int j=l[i];j<=r[i];j++){//题目有要求,为了避免和正方体内部
// 空格搞混,就采用这种方法
//就是解决左上角那一块
ma[-i+x][j+y]=sin[i][j];//倒着的哦
maxx=max(maxx,x+-i);//算最大值?边画边记
maxy=max(maxy,j+y);
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i){
for(int j=;j<m;++j){//由于左下角是0,0,所以从0开始
scanf("%d",&mapp[i][j]);
}
}
for(int i=;i<=n;++i){//行
for(int j=;j<m;++j){//列
for(int k=;k<mapp[i][j];k++){//高度
draw((n-i)*++*k,(n-i)*++*j);
//这里的n-i就相当找到了这一行最左边那一个的左下角
//坐标
//然后根据它的从左到右第几个以及高度修正
}
}
}
for(int i=maxx;i>=;i--){//倒叙输出
for(int j=;j<=maxy;j++){//从左到右倒是不用
if(ma[i][j]=='\0') cout<<".";//只有没画过的才是".”
else{
cout<<ma[i][j];//输出就好
}
}
cout<<endl;
}
return ;
}
Ac
P1058 立体图的更多相关文章
- P1058 立体图题解
小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备给小朋友们讲解立体图,请你帮他画出立体图. 小渊有一块面积为m \times nm×n的矩形区域,上面有m \times ...
- P1058立体图(面对代码解释)
传送 样例: 输出样例: (洛谷上面的那个太丑了就不放了) 大佬博客在此 乍一看好像真的没有什么思路 所以我们结合ybr大佬的代码进行分析 疑点都将在代码下面进行分析(面对代码做题模式开始) #inc ...
- luogu P1058 立体图
做了这个题后明确了自己的定位... 恩...普及- 题目大意估计都知道.. 给个传送门: luogu 做了半上午 + 一整个下午的题... 占了我今天到的绝大多数时间. 其实此题不难, 核心代码我 ...
- P1058立体图
一道大模拟 思路: 首先是打表找规律时间 仔细思考(暴力手算)后推出这么一个数组: //宽的增加量 ]={,,,};//1竖着摞,2横着摞,3前后摞 //长的增加量 ]={,,,};//1竖着摞,2横 ...
- NOIP 2008 立体图
洛谷 P1058 立体图 洛谷传送门 JDOJ 1541: [NOIP2008]立体图 T4 JDOJ传送门 题目描述 小渊是个聪明的孩子,他经常会给周围的小朋友们将写自己认为有趣的内容.最近,他准备 ...
- 模拟画图题P1185 绘制二叉树
题目链接P1185 绘制二叉树 题意概述 根据规则绘制一棵被删去部分节点的满二叉树.节点用 \(o\) 表示,树枝用/\表示.每一层树枝长度会变化,以满足叶子结点有如下特定: 相邻叶子节点是兄 ...
- 2019.7.12 sdfzoier做题统计
lixf_lixf :9 P1981 表达式求值 P1076 寻宝 P1199 三国游戏 P1308 统计单词数 P1190 接水问题 P1158 导弹拦截 P1070 道路游戏 P1069 细胞分裂 ...
- 【洛谷p1058】立体图(已完结)
立体图[题目链接] 然后因为有点(不是有点,非常)懵,因此我只能看一步写一步. 首先总体思路: 将三维立体图看做二维平面图,先确定出二维图的长和宽,然后,按照三维立体图的透视顺序,从最后一排的最左开始 ...
- Matlab 绘制三维立体图(以地质异常体为例)
前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...
随机推荐
- set集合迭代
1.迭代遍历 Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator ...
- xsd 和 wsdl
xsd : 可用方便 不同的语言之间的 用命令行来 转换对应语言的. wsdl: 可用方便不同语言的类描述 用命令行 来相互转换. 类似 thift me ?
- 小白学Java:File类
目录 小白学Java:File类 不同风格的分隔符 绝对与相对路径 File类常用方法 常用构造器 创建方法 判断方法 获取方法 命名方法 删除方法 小白学Java:File类 我们可以知道,存储在程 ...
- Kafka -入门学习
kafka 1. 介绍 官网 http://kafka.apache.org/ 介绍 http://kafka.apache.org/intro 2. 快速开始 1. 安装 路径: http://ka ...
- Object-c的字符串处理常用方法
Object-c的字符串处理常用方法 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { ...
- php--->php打印格式化
php打印格式化 当我们PHP调试的时候,用var_dump 或 print_r打印json数据或array数组时,html页面没有换行显示,看到的内容一大堆,不好定位.输出前添加html的pre标签 ...
- supervisor守护filebeat服务进程
1.变更原因 部署安装supervisor进行filebeat守护及后面的各种服务进程守护可以用2.变更内容增加supervisor服务 3.变量时间:6月2号-6月3号4.变更风险评估:无风险4.1 ...
- pymysql连接提示format: a number is required, not str
最近想随手写一个简单的员工管理系统,第一次使用python连接数据库,在这个过程中就遇到了一些问题,遂记录 遇到问题习惯性百度一下,很多教程都不适合新手,有些还不知道是不是瞎写的,所以我觉得有必要自己 ...
- esp跟ebp跟踪记录
发现文字描述还是太没有快感.上几幅图,来说明这个调试过程更好.此文对于深刻理解ebp,esp是具有长远意义的 可以看到,初始情况下,ebp此时值为0012FEDC,也就是栈帧的地址,而栈顶地址esp值 ...
- uredis ------ 异步 redis 封装的访问库(c++),基于hiredis.
详见 github : https://github.com/uniqss/uredis 底层使用hiredis库,使用libuv库. 只支持异步 支持分表分库,一般是用玩家的ID去取模,比如分库10 ...