题解
2023-07-21 15:54:21
发布于:四川
128阅读
0回复
0点赞
往年的NOIP是真的简单,这个题硬模拟就行了啊。QWQ
只不过模拟过程有点废手,但还是很简单的捏。
#include <iostream>
#include <vector>
using namespace std;
int main(){
	int n;
	cin >> n;
	vector<vector<int>> a(n+1,vector<int>(n+1,0));
	int x=1,y=(n>>1)+1;
	for (int i=1;i<=n*n;++i){
		a[x][y]=i;
		if (x==1 && y!=n){
			x=n,++y;
		}else if (y==n && x!=1){
			y=1,--x;
		}else if (x==1 && y==n){
			++x;
		}else if (x!=1 && y!=n && a[x-1][y+1]==0){
			--x,++y;
		}else{
			++x;
		}
	}
	for (int i=1;i<=n;++i){
		for (int j=1;j<=n;++j){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
这里空空如也

有帮助,赞一个