代码求调,真的醉了
查看原帖
代码求调,真的醉了
341353
封禁用户楼主2022/7/18 11:27
// n:qwq m:awa
#include<bits/stdc++.h>
using namespace std;

int m,n;
int qwq,awa;
bool node[50010][50010];
char tree[50010][50010];

void Set(){
	qwq=3;
	for(int i=3;i<=m;i++)qwq*=2;
	awa=6*(1<<(m-2))-1;
	tree[1][qwq]='o';
	
	for(int i=1;i<=qwq;i++)
		for(int j=1;j<=awa;j++)
			tree[i][j]=' ';
}

void Work(int x,int y,int a,int b,int type,int _x,int _y){
	if(x==qwq){
		tree[x][y]='o';
		return;
	}
	if(type==1){
		tree[x][y]='o';
		int inX=_x+1,inY=(_y-1)*2+1;
		if(!node[inX][inY]) Work(x+1,y-1,a+1,b,2,inX,inY);
		inX=_x+1,inY=_y*2;
		if(!node[inX][inY]) Work(x+1,y+1,a+1,b,3,inX,inY);
	}
	else if(type==2){
		tree[x][y]='/';
		if(a*2==b) Work(x+1,y-1,1,a,1,_x,_y);
		else Work(x+1,y-1,a+1,b,2,_x,_y);
	}
	else if(type==3){
		tree[x][y]='\\';
		if(a*2==b) Work(x+1,y+1,1,a,1,_x,_y);
		else Work(x+1,y+1,a+1,b,3,_x,_y);
	}
}

int main(){
	scanf("%d %d",&m,&n);
	for(int i=1;i<=n;i++){
		int nox,noy;
		scanf("%d %d",&nox,&noy);
		node[nox][noy]=true;
	}
	
	if(m==1){
		qwq=1,awa=1;
		tree[1][1]='o';
	}
	else Set();
	
	Work(1,qwq,1,qwq,1,1,1);
	
	for(int i=1;i<=qwq;i++)
		for(int j=1;j<=awa;j++){
			cout<<tree[i][j];
			puts("");
		}
			
	return 0;
}

我把nm搞混了,教练给的代码输入的m是k,n是p,导致我改乱了

2022/7/18 11:27
加载中...