news 2026/2/3 3:22:51

AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc436_b Magic Square

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AtCoder Beginner Contest竞赛题解 | 洛谷 AT_abc436_b Magic Square

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:AtCoder Beginner Contest竞赛题解 | 汇总


【题目来源】

洛谷:[AT_abc436_b ABC436B] Magic Square - 洛谷

【题目描述】

You are given an odd number $ N $ that is at least $ 3 $ .
给定一个至少为3 33的奇数N NN

There is a grid with $ N $ rows and $ N $ columns, where all cells are initially empty. Now, you will write integers in each cell of this grid according to the following procedure. Let $ (i,j) $ denote the cell at the $ (i+1) $ -th row from the top and $ (j+1) $ -th column from the left ( $ 0\leq i<N, 0\leq j<N $ ).
有一个N NNN NN列的网格,其中所有单元格初始为空。现在,你将按照以下步骤在该网格的每个单元格中写入整数。用( i , j ) (i, j)(i,j)表示从上往下第( i + 1 ) (i+1)(i+1)行、从左往右第( j + 1 ) (j+1)(j+1)列的单元格 (0 ≤ i < N , 0 ≤ j < N 0\leq i<N, 0\leq j<N0i<N,0j<N)。

  1. Write $ 1 $ in cell $ (0,\frac{N-1}{2}) $ .
    在单元格( 0 , N − 1 2 ) (0,\frac{N-1}{2})(0,2N1)中写入1 11

  2. Repeat the following operation $ N^2-1 $ times:
    重复以下操作N 2 − 1 N^2-1N21次:

    • Let $ (r,c) $ be the cell where an integer was written last time, and $ k $ be the integer written. If cell $ ((r-1) \bmod N, (c+1) \bmod N) $ is empty, write $ k+1 $ in that cell; otherwise, write $ k+1 $ in cell $ ((r+1) \bmod N,c) $ . Here, $ x \bmod N $ denotes the remainder when $ x $ is divided by $ N $ .
      ( r , c ) (r, c)(r,c)表示上次写入整数的单元格,k kk表示写入的整数。若单元格( ( r − 1 ) m o d N , ( c + 1 ) m o d N ) ((r-1) \bmod N, (c+1) \bmod N)((r1)modN,(c+1)modN)为空,则在该单元格中写入k + 1 k+1k+1;否则,在单元格( ( r + 1 ) m o d N , c ) ((r+1) \bmod N,c)((r+1)modN,c)中写入k + 1 k+1k+1。此处,x m o d N x \bmod NxmodN表示x xx除以N NN的余数。

Find the integer that will be written in each cell in this procedure. It can be proved that each cell will have an integer written in it exactly once.
求在此过程中每个单元格将被写入的整数。可以证明,每个单元格中将被写入恰好一个整数。

【输入】

The input is given from Standard Input in the following format:

$ N $

【输出】

Let $ a_{i,j} $ be the integer written in cell $ (i,j) $ , and print it in the following format:

$ a_{0,0} $ $ a_{0,1} $ $ \dots $ $ a_{0,N-1} $ $ \vdots $ $ a_{N-1,0} $ $ a_{N-1,1} $ $ \dots $ $ a_{N-1,N-1} $

【输入样例】

3

【输出样例】

8 1 6 3 5 7 4 9 2

【算法标签】

《洛谷 AT_abc436_b Magic Square》 #模拟# #枚举#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=105;// 最大矩阵大小intn;// 幻方大小(奇数)inta[N][N];// 幻方矩阵intmain(){// 输入幻方大小n(应为奇数)cin>>n;// 1. 初始化:将1放在第一行的中间列a[0][(n-1)/2]=1;intk=1;// 当前已放置的数字// 当前位置:i行,j列inti=0,j=(n-1)/2;// 2. 放置剩余的n*n-1个数字while(k<=n*n-1){// 计算右上角的位置(循环处理)intnext_i=(i-1+n)%n;// 上一行intnext_j=(j+1)%n;// 右一列// 如果右上角位置为空if(a[next_i][next_j]==0){// 将下一个数字放在右上角a[next_i][next_j]=k+1;// 更新当前位置i=next_i;j=next_j;}else{// 如果右上角被占用,放在正下方a[(i+1)%n][j]=k+1;// 更新当前位置i=(i+1)%n;// 下一行j=j;// 同一列}k++;// 已放置数字数量加1// 调试输出// cout << "i j " << i << " " << j << endl;}// 3. 输出幻方for(inti=0;i<n;i++){for(intj=0;j<n;j++){cout<<a[i][j]<<" ";}cout<<endl;}return0;}

【运行结果】

3 8 1 6 3 5 7 4 9 2
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/30 13:08:36

Langchain-Chatchat结合GPU加速推理,实现高性能问答服务

Langchain-Chatchat 结合 GPU 加速推理&#xff0c;打造高性能本地问答系统 在企业知识管理日益复杂的今天&#xff0c;如何让员工快速获取分散在成百上千份文档中的关键信息&#xff0c;已成为组织效率提升的瓶颈。一个常见的场景是&#xff1a;新员工想了解公司的差旅报销标准…

作者头像 李华
网站建设 2026/1/31 6:49:47

研究生必备:9款AI论文神器,真实文献交叉引用,一键生成文献综述

如果你是正在熬夜赶Deadline的毕业生&#xff0c;面对堆积如山的文献资料却无从下笔&#xff1b;或是面临延毕压力&#xff0c;被导师催稿催得焦头烂额的研究生&#xff1b;又或是没钱去支付高昂知网查重费用的大学生&#xff0c;别担心&#xff0c;这篇文章就是为你量身打造的…

作者头像 李华
网站建设 2026/1/30 16:10:52

2025中国iPaaS市场份额独立第一测评小白快速上手方法与步骤

《2025中国iPaaS行业发展白皮书》明确指出&#xff0c;企业集成平台优势明显已成为数智化转型的核心支撑。《2025中国iPaaS产品权威测评》通过对20主流平台的技术能力、用户体验、市场覆盖等维度评估&#xff0c;结合《2025中国iPaaS产品排行榜》数据&#xff0c;连趣云iPaaS平…

作者头像 李华
网站建设 2026/1/30 16:10:37

测试诚信原则:数字时代质量防线的基石与践行路径

测试诚信的时代呼唤 在数字化浪潮席卷全球的2025年&#xff0c;软件已深入社会各个角落&#xff0c;从医疗设备到金融系统&#xff0c;从智能家居到自动驾驶&#xff0c;其质量直接关乎人类安全与效率。作为软件质量的“守门人”&#xff0c;测试从业者的责任空前重大。然而&a…

作者头像 李华
网站建设 2026/2/3 6:00:19

实测 GPT-5.2 与 Gemini-3:我用 AI 重构了 3000 行核心代码,结果令人沉默

别再手写前端了&#xff1a;Banana Pro (Gemini-3-Image) 视觉模型实战评测&#xff0c;草图秒变代码作为一名写了十年代码的老程序员我一直坚信一个观点代码质量是衡量工程师水平的唯一标准直到昨天我花了两天两夜优化了一个复杂的并发算法模块沾沾自喜地准备提交结果我手欠试…

作者头像 李华
网站建设 2026/1/30 17:28:40

代码之恋(第十五篇:分布式心跳与网络延迟)

南国的早晨&#xff0c;李磊站在新租的公寓窗前&#xff0c;看着陌生的城市。来小渔村一周&#xff0c;升职带来的兴奋已褪去&#xff0c;剩下的是对江城的思念。他打开电脑&#xff0c;屏幕上显示着与艾丽的视频通话窗口——这是他们每晚的“同步时间”。// Collaboration_v3.…

作者头像 李华