#P1012. [NOIP2015提高组] 神奇的幻方
题目描述
幻方是一种很神奇的 N \times NN×N 矩阵:它由数字 1,2,3, \ldots ,N \times N1,2,3,…,N×N 构成,且每行、每列及两条对角线上的数字之和都相同。
当 NN 为奇数时,我们可以通过以下方法构建一个幻方:
首先将 11 写在第一行的中间。
之后,按如下方式从小到大依次填写每个数 KK(K = 2,3, \ldots ,N \times NK=2,3,…,N×N):
- 若 (K - 1)(K−1) 在第一行但不在最后一列,则将 KK 填在最后一行,(K - 1)(K−1) 所在列的右一列;
- 若 (K - 1)(K−1) 在最后一列但不在第一行,则将 KK 填在第一列,(K - 1)(K−1) 所在行的上一行;
- 若 (K - 1)(K−1) 在第一行最后一列,则将 KK 填在 (K - 1)(K−1) 的正下方;
- 若 (K - 1)(K−1) 既不在第一行,也不在最后一列,如果 (K - 1)(K−1) 的右上方还未填数,则将 KK 填在 (K - 1)(K−1) 的右上方,否则将 KK 填在 (K - 1)(K−1) 的正下方。
现给定 NN,请按上述方法构造 N \times NN×N 的幻方。
输入格式
输入只有一行,包含一个整数,即幻方的大小。
输出格式
输出包含 NN 行,每行 NN 个整数,即按上述方法构造出的 N \times NN×N 的幻方。相邻两个整数之间用单个空格隔开。
样例
输入数据 1
3
Copy
输出数据 1
8 1 6
3 5 7
4 9 2
Copy
数据范围与提示
对于 100\%100% 的数据,1 \leq N \leq 391≤N≤39 且为奇数。
代码:
#include <bits/stdc++.h>
using namespace std;
int in;
int circle[1000][1000];
int key_X, key_Y, i;
int main() {scanf("%d", &in);in = (in + 1) / 2;key_Y = in - 1;while (i <= (2 * in - 1) * (2 * in - 1)) {i++;circle[key_X][key_Y] = i;if (key_X == 0 && key_Y != 2 * in - 2) {key_X = 2 * in - 2;key_Y++;} else if (key_Y == 2 * in - 2 && key_X != 0) {key_Y = 0;key_X--;} else if ((key_X == 0 && key_Y == 2 * in - 2) || (circle[key_X - 1][key_Y + 1] != 0)) {key_X++;} else {if (key_X == 0)key_X = 2 * in - 2;elsekey_X--;if (key_Y == 2 * in - 2)key_Y = 0;elsekey_Y++;}}for (int i1 = 0; i1 < 2 * in - 1; i1++) {for (int i2 = 0; i2 < 2 * in - 1; i2++) {printf("%d ", circle[i1][i2]);}printf("\n");}return 0;
}
相关文章:
#P1012. [NOIP2015提高组] 神奇的幻方
题目描述 幻方是一种很神奇的 N \times NNN 矩阵:它由数字 1,2,3, \ldots ,N \times N1,2,3,…,NN 构成,且每行、每列及两条对角线上的数字之和都相同。 当 NN 为奇数时,我们可以通过以下方法构建一个幻方: 首先将 11 写在第一行…...

(学习笔记-IP)Ping的工作原理
Ping是基于ICMP协议工作的,ICMP报文封装在IP包里面,它工作在网络层,是IP协议的助手。 ICMP包头的类型字段,大致可分为两大类: 一类是用于诊断的查询消息,也就是查询报文类型一类是通知出错原因的错误消息&…...
php 进程间通信:管道、uds
1、管道 1.1、管道概念 管道是单向的、先进先出的,它把进程的输出和另一个进程的输入连接在一起。一个进程往管道写入数据,另一个进程从管道读取数据。数据被从管道中读取出来之后,将被删除,其他进程无法在读取到相应的数据。管…...

Stable Diffusion如何生成高质量的图-prompt写法介绍
文章目录 Stable Diffusion使用尝试下效果prompt的编写技巧prompt 和 negative promptPrompt格式Prompt规则细节优化Guidance Scale 总结 Stable Diffusion Stable Diffusion是一个开源的图像生成AI系统,由Anthropic公司开发。它基于 Transformer模型架构,可以通过文字描述生成…...

MySQL 高级SQL语句(一)
目录 一、高级SQL语句(进阶查询) 1.1 select 1.2 distinct 1.3 where 1.4 and 和 or 1.5 in 1.6 between 1.7 通配符 1.8 like 1.9 order by 一、高级SQL语句(进阶查询) 先准备2个表 一个location表: use m…...

SkyWalking链路追踪-技术文档首页
SkyWalking 文档中文版(社区提供) (skyapm.github.io)https://skyapm.github.io/document-cn-translation-of-skywalking/ SkyWalking-基本概念 SkyWalking链路追踪是一个用于分布式系统的性能监控工具,它帮助开发人员了解系统中各组件之间…...

AndroidStudio Memory profiler(内存分析器)
1.Record Java/Kotlin allocations 查看java 层中对象的调用栈和短时间内创建对象的次数。可用于内存抖动快速分析,可用快速查找到该对象的调用栈(等同于mat) 从上图可见,短时间内创建了23个char[] 数组,其中最大的char[] 占用20k, 查看cll stack 调用…...

【C++模板进阶】
目录 一、模板使用时的一个小注意点二、非类型模板参数三、类模板的特化3.1函数模板的特化3.2类模板的特化3.2.1全特化3.2.2偏特化 四、模板的分离编译4.1模板不支持分离编译4.2模板分离编译报错的分析4.2解决方案 五、模板的总结 一、模板使用时的一个小注意点 在使用模板时&…...

(一)RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理
Lison <dreamlison163.com>, v1.0.0, 2023.06.22 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理 文章目录 RabbitMQ概念-优势、劣势、应用场景 、AMQP、工作原理RabbitMQ概念RabbitMQ的优势RabbitMQ劣势RabbitMQ应用的场景RabbitMQ_AMQPRabbitMQ工作原理 RabbitM…...

JetBrains全家桶:如何自定义实现类TODO注释?
文章目录 效果图具体方法参考文献 效果图 TODO注释大家应该都用过,在注释开头打上TODO的话,软件下方的TODO选项卡里就可以自动筛选出你打了TODO的注释,你可以点击里面对应的注释来实现快速跳转。 jetbrains全家桶(如Pycharm、Int…...

【技术干货】工业级BLE5.2蓝牙模块SKB378 使用教程,AT指令集
SKB378是一个高度集成的蓝牙5.2模组,可用来在2.4GHz ISM频段内做高速率、短距离无线通信。工业级标准,支持主从模式(1主对8从),支持串口透传,AT指令控制,且支持AoA蓝牙高精度室内定位,模组内部集成32位ARM …...

零基础深度学习——学习笔记1 (逻辑回归)
前言 因为各种各样的原因要开始学习深度学习了,跟着吴恩达老师的深度学习视频,自己总结一些知识点,以及学习中遇到的一些问题,以便记录学习轨迹以及以后复习使用,为了便于自己理解,我会将一些知识点用以个…...

I want to know on what switchport is connected my computer (10.8.0.2)
i.e. I am connected to an L2. I want to know on what switchport is connected my computer (10.8.0.2) Well….obviously not on this switch. Let’s dig Now I have the MAC address of my computer, we confinue to dig Computer has been seen on interface g0/2. Let’…...

OpenCv之人脸操作
目录 一、马赛克实现 二、人脸马赛克 三、人脸检测 四、多张人脸检测 一、马赛克实现 案例代码如下: import cv2 import numpy as npimg cv2.imread(8.jpg) # 马赛克方式一:缩小图片 # img2 cv2.resize(img,(600,400)) # # 马赛克方式二: # img2 cv2.resize(img,(600,4…...
C++[第五章]--指针和引用
指针和引用 文章目录 指针和引用1、引用2、指针3、右值引用4、引用限定符const和引用限定符1、引用 引用就是别名,引用定义时必须初始化: int a; int &b=a; //b即为a的别名 如果不是形参,必须初始化,引用某一变量 2、指针 指针和c一样; this指针 在类的成员函数中使…...

用i18next使你的应用国际化-React
ref: https://www.i18next.com/ i18next是一个用JavaScript编写的国际化框架。 i18next为您提供了一个完整的解决方案,本地化您的产品从web端到移动端和桌面端。 在react项目中安i18next依赖: i18nextreact-i18nexti18next-browser-languagedetector&…...

TSN -促进IT/OT 融合的网络技术
时间敏感网络(tsn)技术是IT/OT 融合的一项关键的基础网络技术,它实现了在一个异构网络中,实现OT的实时数据和IT系统的交互数据的带宽共享。 TSN允许将经典的高确定性现场总线系统和IT应用(如大数据传输)的功…...

改进的北方苍鹰算法优化BP神经网络---回归+分类两种案例
今天采用前作者自行改进的一个算法---融合正余弦和折射反向学习的北方苍鹰(SCNGO)优化算法优化BP神经网络。 文章一次性讲解两种案例,回归与分类。回归案例中,作者选用了一个经典的股票数据。分类案例中,选用的是公用的UCI数据集。 BP神经网络…...
等保工作如何和企业创新业务发展相结合,实现“安全”和“创新”的火花碰撞?
等保工作如何和企业创新业务发展相结合,实现“安全”和“创新”的火花碰撞?在当今数字化浪潮的背景下,企业越来越需要在“安全”和“创新”之间找到平衡点,以实现业务的持续创新和安全的有效保障。等保工作可以为企业提供安全保障…...
23.7.25 杭电暑期多校3部分题解
1005 - Out of Control 题目大意 解题思路 code 1009 - Operation Hope 题意、思路待补 code #include <bits/stdc.h> using namespace std; const int N 1e5 9; struct lol {int x, id;} e[3][N * 2]; int t, n, a[3][N * 2], hd[3], tl[3], vis[N * 2], q[N * …...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...