洛谷 P1058 立体图
来源:互联网 发布:板式家具软件 编辑:程序博客网 时间:2024/05/16 11:12
炒鸡好玩的一道题。
主要就是先画后面的,再画前面的,这样前面的方块就会把后面的覆盖掉。
于是就纯模拟。
#include<iostream> #include<cstring> using namespace std; char a[301][301]; int n,m,b[51][51],high=300,len;//用high len分别储存长度和高度 void built(int x,int y)//模拟打出一个小方块,本函数可以忽略(就是疯狂赋值) { int i; for(i=y+1; i<=y+3; i++) { a[x][i]='-'; a[x-1][i]=' '; a[x-2][i]=' '; a[x-3][i]='-'; } for(i=x-1; i>=x-2; i--) { a[i][y]='|'; a[i][y+4]='|'; } a[x][y]='+'; a[x][y+4]='+'; a[x-3][y]='+'; a[x-3][y+4]='+'; a[x-1][y+5]='/'; a[x-4][y+5]='/'; a[x-2][y+5]=' '; a[x-2][y+6]='+'; a[x-3][y+5]=' '; a[x-3][y+6]='|'; a[x-4][y+1]='/'; for(i=y+2; i<=y+4; i++) a[x-4][i]=' '; a[x-4][y+6]='|'; a[x-5][y+2]='+'; for(i=y+3; i<=y+5; i++) a[x-5][i]='-'; a[x-5][y+6]='+'; if(x-5<high) high=x-5; if(y+6>len) len=y+6; } void read() { int i,j,k,x,y; memset(a,'.',sizeof(a));//背景 cin>>m>>n; for(i=1; i<=m; i++) for(j=1; j<=n; j++) cin>>b[i][j]; x=300; y=1;//从最左下角开始打 /*思想是这样的:先打最后面的,从左往右打,前面的覆盖后面的,右面的覆盖左面的*/ for(i=2; i<=m; i++) { x-=2; y+=2; } for(i=1; i<=m; i++) { int x1=x,y1=y; for(j=1; j<=n; j++) { for(k=1; k<=b[i][j]; k++) { built(x1,y1); x1-=3; } x1=x; y1+=4; } x+=2; y-=2; } for(i=high; i<=300; i++)//从高度上 { for(j=1; j<=len; j++)//从长度上 cout<<a[i][j]; cout<<endl; } return; } int main() { read(); return 0; }
0 0
- 洛谷 P1058 立体图
- 洛谷 P1058 立体图
- 洛谷 P1058 立体图
- 【模拟】洛谷 P1058 立体图
- 洛谷 P1058 立体图
- 立体图
- 立体图
- 立体图【模拟】
- P1009立体图
- 【tyvj1009】立体图
- P1009 立体图
- 【P084】立体图
- 【NOIP2008PJ】立体图
- matlab绘制立体图
- FusionChart三维立体图
- ps立体图倒影
- matlab绘制立体图
- Sicily 1764. 立体图
- NOIP2015提高组解析
- Android基础控件——CardView的使用、仿支付宝银行卡
- 记录基础学习第二_小项目_飞行棋小游戏
- eclipse没有Dynamic web project选项
- 内存申请与释放
- 洛谷 P1058 立体图
- 瀑布布局流--原生js
- 1613-3-傅溥衍 总结《2016年10月15日》【连续第十五天总结】
- myeclipse中安装jrebel插件
- CCF 201609-2 火车购票 解题报告 简单模拟
- TVS管的选取 计算
- apkTool反编译
- 拷贝控制与资源管理
- 常用控件属性合集