Link
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;
}