{"problem":{"name":"[GESP样题 四级] 填幻方","description":{"content":"在一个 $N\\times N$ 的正方形网格中，每个格子分别填上从 1 到 $N×N$ 的正整数，使得正方形中任一行、任一列及对角线的几个数之和都相等，则这种正方形图案就称为“幻方”（输出样例中展示了一个 $3×3$ 的幻方）。我国古代称为“河图”、“洛书”，又叫“纵横图”。 幻方看似神奇，但当 $N$ 为奇数时有很方便的填法： 1. 一开始正方形中没有填任何数字。首先，在第一行的正中央填上 $","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":1000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGB3940"},"statements":[{"statement_type":"Markdown","content":"在一个 $N\\times N$ 的正方形网格中，每个格子分别填上从 1 到 $N×N$ 的正整数，使得正方形中任一行、任一列及对角线的几个数之和都相等，则这种正方形图案就称为“幻方”（输出样例中展示了一个 $3×3$ 的幻方）。我国古代称为“河图”、“洛书”，又叫“纵横图”。\n\n幻方看似神奇，但当 $N$ 为奇数时有很方便的填法：\n1. 一开始正方形中没有填任何数字。首先，在第一行的正中央填上 $1$。\n2. 从上次填数字的位置向上移动一格，如果已经在第一行，则移到同一列的最后一行；再向右移动一格，如果已经在最右一列，则移动至同一行的第一列。如果移动后的位置没有填数字，则把上次填写的数字的下一个数字填到这个位置。\n3. 如果第 2 步填写失败，则从上次填数字的位置向下移动一格，如果已经在最下一行，则移到同一列的第一行。这个位置一定是空的（这可太神奇了！）。把上次填写的数字的下一个数字填到这个位置。\n4. 重复 2、3 步骤，直到所有格子都被填满，幻方就完成了！\n\n快来编写一个程序，按上述规则，制作一个 $N\\times N$ 的幻方吧。\n\n## Input\n\n输入为一个正奇数 $N$，保证 $3 \\leq N \\leq 21$。\n\n## Output\n\n输出 $N$ 行，每行 $N$ 个空格分隔的正整数，内容为 $N×N$ 的幻方。\n\n[samples]\n\n## Background\n\n对应的选择、判断题：<https://ti.luogu.com.cn/problemset/1104>","is_translate":false,"language":"English"}],"meta":{"iden":"LGB3940","tags":["GESP"],"sample_group":[["3","8 1 6\n3 5 7\n4 9 2"]],"created_at":"2026-03-03 11:09:25"}}