社区讨论

90分求救,#9wa

P1058[NOIP 2008 普及组] 立体图参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m03inrno
此快照首次捕获于
2024/08/21 15:12
2 年前
此快照最后确认于
2025/11/04 22:51
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>

using namespace std;

int m,n,k,l,bx,by;
int user[55][55];
char arr[5005][5005];
bool a[5005];

void draw(int x,int y){
	arr[x][y] = '+';
	arr[x][y+1] = '-';
	arr[x][y+2] = '-';
	arr[x][y+3] = '-';
	arr[x][y+4] = '+';
	a[x] = 1;
	
	arr[x-1][y] = '|';
	arr[x-1][y+1] = ' ';
	arr[x-1][y+2] = ' ';
	arr[x-1][y+3] = ' ';
	arr[x-1][y+4] = '|';
	arr[x-1][y+5] = '/';
	a[x-1] = 1;
	
	arr[x-2][y] = '|';
	arr[x-2][y+1] = ' ';
	arr[x-2][y+2] = ' ';
	arr[x-2][y+3] = ' ';
	arr[x-2][y+4] = '|';
	arr[x-2][y+5] = ' ';
	arr[x-2][y+6] = '+';
	a[x-2] = 1;
	
	arr[x-3][y] = '+';
	arr[x-3][y+1] = '-';
	arr[x-3][y+2] = '-';
	arr[x-3][y+3] = '-';
	arr[x-3][y+4] = '+';
	arr[x-3][y+5] = ' ';
	arr[x-3][y+6] = '|';
	a[x-3] = 1;
	
	arr[x-4][y+1] = '/';
	arr[x-4][y+2] = ' ';
	arr[x-4][y+3] = ' ';
	arr[x-4][y+4] = ' ';
	arr[x-4][y+5] = '/';
	arr[x-4][y+6] = '|';
	a[x-4] = 1;
	
	arr[x-5][y+2] = '+';
	arr[x-5][y+3] = '-';
	arr[x-5][y+4] = '-';
	arr[x-5][y+5] = '-';
	arr[x-5][y+6] = '+';
	a[x-5] = 1;
} 

int main(){
	memset(arr,46,sizeof(arr));
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>user[i][j];
			k = max(k,user[i][j]*3+1+2*(n-i+1));
		}
	}
	
	l = 4*n+2*m+1;
	int bx = k-2*(m-1);
	int by = 1+2*(m-1);
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			for(int o=1;o<=user[i][j];o++){
				draw(bx-3*(o-1)+2*(i-1),by+4*(j-1)-2*(i-1));
			}	
		}
	}
	for(int i=1;i<=k;i++){
		if(a[i]){
			for(int j=1;j<=l;j++){
				cout<<arr[i][j];
			}
			cout<<endl;
		}
	}
	return 0;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...