P1498 南蛮图腾 题解 Link Solve Code

P1498 南蛮图腾 题解
Link
Solve
Code

P1498 南蛮图腾

Solve

偶然看到一道好题

看到很多人都是用DP,DFS来实现的

突然看到一种奇怪的做法:

我们发现杨辉三角%2有一个非常好的性质

            1
           1 1 
          1 0 1 
         1 1 1 1 
        1 0 0 0 1 
       1 1 0 0 1 1 
      1 0 1 0 1 0 1 
     1 1 1 1 1 1 1 1 

和这道题的性质很像,我们就可以用杨辉三角来推了。

这道题带给我们很多思考。

推的时候可以用一维

Code

#include<iostream>
using namespace std;
int n,a[1030]={1};
int main(){
	cin>>n;
    for(int i=0;i<1<<n;++i){
        for(int j=1;j<(1<<n)-i;++j)cout<<" ";//前导空格
		for(int j=i;j>=0;--j){a[j]^=a[j-1];/*printf("%d ",a[j]);*/}//修改数组
//		printf("
");
		if(!(i%2))for(int j=0;j<=i;++j)cout<<(a[j]?"/\":"  ");//奇数行
		else for(int j=0;j<=i;j+=2)cout<<(a[j]?"/__\":"    ");//偶数行
		cout<<endl;
    }
    return 0;
}