社区讨论

还有人吗,头一回MLE(求解)

B3940[GESP样题 四级] 填幻方参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mm0q2zno
此快照首次捕获于
2026/02/24 22:50
2 周前
此快照最后确认于
2026/02/24 22:55
2 周前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long a[25][25],x,y,x1,yy1,i,n;
int tc(){
	yy1=y;
	x1=x;
	a[x][y]=i;
}
int hf1(){
	if(x1+1>n) {
		x1=x=1;
		a[x1][yy1]=i;
		} else {
		x1+=1;
		x=x1;
		y=yy1;
		a[x1][yy1]=i;
	}
}
int hf() {
	int k,j;
	for(i=2; i<=n*n; i++) {
		if(x-1==0) {
			x=n;
			if(y+1>n) {
				y=1;
				if(a[x][y]==0) {
					tc();
				} else {
					hf1();
				}
			} else {
				y+=1;
				if(a[x][y]==0) {
					tc();
				} else {
					hf1();
				}
			}
		} else {
			if(y+1>n) {
				y=1;
				x-=1;
				if(a[x][y]==0) {
					tc();
				} else {
					hf1();
				}
			} else {
				x-=1;
				y+=1;
				if(a[x][y]==0) {
					tc();
				} else {
					hf1();
				}
			}
		}
	}
}
int main() {
	int k,j;
	cin>>n;
	a[1][n/2+1]=1;
	x=1;
	x1=x;
	y=n/2+1;
	yy1=y;
	hf();
	for(k=1; k<=n; k++) {
		for(j=1; j<=n; j++) {
			cout<<a[k][j]<<" ";
		}
		cout<<endl;
	}
}

回复

0 条回复,欢迎继续交流。

正在加载回复...