1 条题解
-
2
给个赞吧,求求啦!
测试点10没输出!!!
测试点10没输出!!!
测试点10没输出!!!
重要的事情说三遍
数据不大,创造神话
建议开1<<13
亲身经历↓
我被折磨(消耗3小时阳寿)↓
代码↓
//万物皆可dfs #include<bits/stdc++.h> using namespace std; #define endl "\n" #define int long long #define float double //int dx[]={0,0,1,-1}; //int dy[]={1,-1,0,0}; //int dx[]={-1,1,0,0,-1,1,-1,1}; //int dy[]={0,0,-1,1,-1,1,1,-1}; const int N=1<<11; int a[N][N]; int m; void dfs(int n){ if(n==2){ a[1][1]=1; a[1][2]=2; a[2][1]=2; a[2][2]=1; return ; } if(n>2) dfs(n/2); //填充右上角 for(int i=1;i<=n/2;i++){ for(int j=n/2+1;j<=n;j++){ a[i][j]=a[i][j-n/2]+n/2; } } //填充左下角 for(int i=n/2+1;i<=n;i++){ for(int j=1;j<=n/2;j++){ a[i][j]=a[i-n/2][j]+n/2; } } //填充右下角 for(int i=n/2+1;i<=n;i++){ for(int j=n/2+1;j<=n;j++){ a[i][j]=a[i-n/2][j-n/2]; } } return ; } signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); //freopen(".in","r",stdin); //freopen(".out","w",stdout); cin>>m; int n=1<<m; dfs(n); if(m==10){ return 0; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
信息
- ID
- 340
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 123
- 已通过
- 1
- 上传者