为什么会RE?
查看原帖
为什么会RE?
1063811
gwg725楼主2024/12/7 21:45
#include <bits/stdc++.h>
using namespace std;
const int N=50;
int dp[N][N];
int main()
{
	int n;
	memset(dp,0,sizeof dp);
	scanf("%d",&n);
	dp[1][n/2+1]=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=2;k<=n*n;k++){
				if(dp[i][j]==k-1){
					if(i==1&&j!=n){
						j++;
						i=n;
						dp[i][j]=k;
					}
					else if(j==n&&i!=1){
						j=1;
						i--;
						dp[i][j]=k;
					}
					else if(i==1&&j==n){
						i++;
						dp[i][j]=k;
					}
					else if(i!=1&&j!=n){
						if(!dp[i-1][j+1]){
							i--;
							j++;
							dp[i][j]=k;
						}
						else{
							i++;
							dp[i][j]=k;
						}
					}
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			printf("%d ",dp[i][j]);
		}
		puts("");
	}
	return 0; 
}
2024/12/7 21:45
加载中...