P1498 南蛮图腾

数据范围很小,可以暴力解决问题

#include <bits/stdc++.h>
using namespace std;
char a[2050][2050];
int n;
void draw(int x,int y,int d) {
    if(d==1){
        a[x][y+1]='/';
        a[x][y+2]='\\';
        a[x+1][y]='/';
        a[x+1][y+1]='_';
        a[x+1][y+2]='_';
        a[x+1][y+3]='\\';
        return;
    }
    int step=1<<(d-1); // 2^(d-1)
    draw(x,y+step,d-1); // 上面
    draw(x+step,y,d-1); // 左下
    draw(x+step,y+2*step,d-1); // 右下
}
int main(){
    cin>>n;
    memset(a,' ',sizeof(a));
    draw(0,0,n);
    int h=1<<n;
    int w=1<<(n+1);
    for (int i=0;i<h;i++) {
        for (int j=0;j<w;j++)
            cout<<a[i][j];
        cout<<endl;
    }
    return 0;
}