洛古【P1498】:南蠻圖騰(分治演算法)
阿新 • • 發佈:2018-12-27
題目描述就不用看了,直接上樣例就行:
輸入樣例#1:2輸出樣例#1:
/\ /__\ /\ /\ /__\/__\輸入樣例#2:
3輸出樣例#2:
/\ /__\ /\ /\ /__\/__\ /\ /\ /__\ /__\ /\ /\ /\ /\ /__\/__\/__\/__\
嗯,一個赤裸裸的分形圖。
1 #include<bits/stdc++.h> 2 using namespace std; 3 intn; 4 char a[2050][2050]; 5 void solve(int m1,int m2,int h1,int h2) 6 { 7 if(m2-m1==3) 8 { 9 a[h1][m1+1]=a[h2][m1]='/'; 10 a[h1][m2-1]=a[h2][m2]='\\'; 11 a[h2][m1+1]=a[h2][m1+2]='_'; 12 return; 13 } 14 else{ 15 solve(m1,(m1+m2)/2,(h1+h2)/2+1,h2);16 solve((m1+m2)/2+1,m2,(h1+h2)/2+1,h2); 17 solve(m1+(m2-m1+1)/4,m2-(m2-m1+1)/4,h1,(h1+h2)/2); 18 } 19 20 } 21 int main() 22 { 23 cin>>n; 24 int m=pow(2,n+1),h=pow(2,n); 25 solve(1,m,1,h); 26 for(int i=1;i<=h;i++) 27 { 28 for(int j=1;j<=m;j++)29 { 30 if(a[i][j]==0)printf(" "); 31 else printf("%c",a[i][j]); 32 } 33 puts(""); 34 } 35 }