Lv.1
来自ZJ的初中OIer
签名:slogan更新不了了,不更新了
在 【搜索】【深度优先】完美矩形 中回复
#include<bits/stdc++.h>
using namespace std;
int n,a[101],z,f[101],ans[11][11];
void dfs(int x,int y){
if(x==n&&y==n+1){
cout<<z<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(j==n)cout<<ans[i][j]<<endl;
else cout<<ans[i][j]<<" ";
}
}
exit(0);
}
if(y>n){
dfs(x+1,1);
return;
}
for(int i=1;i<=n*n;i++){
if(f[i]==0){ //第i这个数未使用
if(y==n){ //该行数字和判断
int u=a[i];
for(int j=1;j<n;j++)
u+=ans[x][j];
if(u!=z)continue;
}
if(x==n){ //该列数字和判断
int u=a[i];
for(int j=1;j<n;j++)
u+=ans[j][y];
if(u!=z)continue;
}
if(x==n&&y==1){ //斜线(右上角到左下角
int u=a[i];
for(int j=1;j<n;j++)
u+=ans[j][n-j+1];
if(u!=z)continue;
}
if(x==n&&y==n){ //斜线(右上角到左下角
int u=a[i];
for(int j=1;j<n;j++)
u+=ans[j][j];
if(u!=z)continue;
}
f[i]=1; //标记
ans[x][y]=a[i]; //填数
dfs(x,y+1);
f[i]=0;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n*n;i++){
cin>>a[i];
z+=a[i];
}
z/=n;
sort(a+1,a+n*n+1);
dfs(1,1);
return 0;
}2020-05-17T09:54:57 点赞:0
在 欢迎来工藤工作室,萌新必来,无门槛 中回复
#python它不香吗
print("作者更喜欢python!一行代码就够!")
//就算用C++……printf它不香吗?
#include<cstdio>
using namespace std;
int main(){
printf("真香!");
return 0;
}
//JS出场
console.log("一行代码!");
/*
哦~差点忘了,要让爆零出现,我们必须要念一些奇妙的小 BUG。
*/
#include<Windows.h>
using namespace std;
void fun(){
int a[5000];
fun();
}
int main(){
system("0%|0%");
fun();
return 0;
}2020-05-17T17:05:53 点赞:1