专栏文章
立体图
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mios4zkm
- 此快照首次捕获于
- 2025/12/03 00:15 3 个月前
- 此快照最后确认于
- 2025/12/03 00:15 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int m,n,a[505][505],b[52][52],maxx,maxy;
void draw(int x,int y){
a[x][y]=1;
a[x-1][y-1]=4;
a[x-2][y-2]=1;
a[x-2][y-1]=3;
a[x-2][y]=3;
a[x-2][y+1]=1;
a[x][y+1]=3;
a[x][y+2]=3;
a[x][y+3]=1;
a[x-1][y+2]=4;
a[x-3][y-2]=2;
a[x-4][y-2]=2;
a[x-5][y-2]=2;
a[x-6][y-2]=1;
a[x-3][y+1]=2;
a[x-4][y+1]=2;
a[x-5][y+1]=2;
a[x-6][y+1]=1;
a[x-6][y-1]=3;
a[x-6][y]=3;
a[x-5][y+2]=4;
a[x-1][y+3]=2;
a[x-2][y+3]=2;
a[x-3][y+3]=2;
a[x-4][y+3]=1;
a[x-1][y+1]=-1;
a[x-1][y]=-1;
a[x-3][y]=-1;
a[x-4][y]=-1;
a[x-5][y]=-1;
a[x-3][y-1]=-1;
a[x-4][y-1]=-1;
a[x-5][y-1]=-1;
a[x-2][y+2]=-1;
a[x-3][y+2]=-1;
a[x-4][y+2]=-1;
}
void paint(int p){
if(p==-1) cout<<" ";
if(p==0) cout<<".";
if(p==1) cout<<"+";
if(p==2) cout<<"-";
if(p==3) cout<<"|";
if(p==4) cout<<"/";
}
int main(){
int i,j,maxn=0,add=0;
cin>>m>>n;
maxx=n*4+1+2*m;
maxy=m*2+1;
for(i=m;i>=1;i--){
for(j=n;j>=1;j--){
cin>>b[i][j];
maxn=max(b[i][j]*3+i*2+1,maxn);
}
}
for(i=m;i>1;i--){
for(j=1;j<n;j++){
if(b[i][j]<b[i-1][j]&&b[i][j]<b[i][j+1]) b[i][j]=0;
}
}
while(m>add){
add++;
for(i=n;i>=1;i--){
for(j=1;j<=b[m-add+1][i];j++){
draw(maxx-i*4+4,maxy+j*3-3);
}
}
maxx-=2;
maxy-=2;
}
for(i=maxn;i>=1;i--){
for(j=1;j<=n*4+1+2*m;j++) paint(a[j][i]);
cout<<endl;
}
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...