// 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,导致我改乱了