当前位置:网站首页>2022河南萌新联赛第(五)场:信息工程大学 K - 矩阵生成
2022河南萌新联赛第(五)场:信息工程大学 K - 矩阵生成
2022-08-10 05:46:00 【WA_自动机】
K - 矩阵生成
P2615 [NOIP2015 提高组] 神奇的幻方
首先开一组循环输入。然后将第一行中间的数赋值为1,定义一个x,y表示当前位置,把x赋值为1,y赋值为(n+1)/2.
其次在开一组循环,根据x,y的值(即K-1的坐标)情况判断怎么填写数字,在填写数字完毕后将x,y的值赋为当前坐标。
最后当循环数到达n*n后结束并输出
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
int a[N][N];
int main()
{
int n;cin>>n;
int x=1,y=(n+1)/2;
a[x][y]=1;
for(int i=2; i<=n*n; i++)
{
if(x==1&&y!=n)
{
x=n;
y++;
}
else if(x!=1&&y==n)
{
x--;
y=1;
}
else if(x==1&&y==n) x++;
else if(!a[x-1][y+1])
{
x--;
y++;
}
else x++;
a[x][y]=i;
}
for(int i=1; i<=n; i++)
{
cout << a[i][1];
for (int j=2; j<=n; j++) cout << ' ' << a[i][j];
cout << endl;
}
return 0;
}
边栏推荐
猜你喜欢
随机推荐
The use of pointers from the exchange of two data values (C language implementation)
关于Qt高频率信号槽合并的误解和方案
VS Code插件国际化
剑指 Offer(第 2 版)7/12 18-20
UnityShader入门精要-纹理动画、顶点动画
Hypervisor, KVM, QEMU总结
elf文件与链接脚本
氨氮吸附材料原理
MySQL笔记
强化学习_10_Datawhale稀疏奖励
Kernel performance analysis summary
二叉树 6/15 76-80
内核映像文件格式
什么是代理ip?市面上好用的代理软件有哪些
How is C# hot update better than Lua?
强化学习_11_Datawhale模仿学习
新手使用 go channel 需要注意的问题
动态规划、背包问题 6/23 101-105
UnityShader入门精要-基础纹理
背包问题 c语言版