专栏文章

题解:B3940 [GESP样题 四级] 填幻方

B3940题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@mimy78zn
此快照首次捕获于
2025/12/01 17:29
3 个月前
此快照最后确认于
2025/12/01 17:29
3 个月前
查看原文

题目传送门

本蒟蒻的第一篇题解,管理员大大求过。
这道题很简单,直接模拟即可,我们可以用二维数组维护幻方,然后记录一下 xxyy (即为当前要填的数的坐标)kongkong (剩余空格数量)。
废话不多说,直接上AC代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int a[25][25],x=1,y,n,kong,ans=1;
int main(){
    cin>>n;
    kong=n*n;
    y=n/2+1;
    while(kong--)
    {
        a[x][y]=ans;
        ans++;
        int xx,yy;
        xx=x-1;
        if(xx<=0) xx=n;
        yy=y+1;
        if(yy>n) yy=1;
        if(a[xx][yy]!=0)
        {
            xx=x,yy=y;
            xx++;
            if(xx>n) xx=1;
        }
        x=xx,y=yy;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++) cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
完结撒花!!!
管理员大大求过啊啊啊

评论

0 条评论,欢迎与作者交流。

正在加载评论...