NOIP 2015普及组复赛Day1 T1 == Codevs4510 神奇的幻方
幻方是一种很神奇的N∗N矩阵:它由数字 1,2,3, … … ,N∗N构成,且每行、每列及两条对角线上的数字之和都相同。
当N为奇数时,我们可以通过以下方法构建一个幻方:
首先将 1写在第一行的中间。之后,按如下方式从小到大依次填写每个数(K= 2,3, … ,N∗N ):
1.若 (K−1)在第一行但不在最后一列,则将 填在最后一行,(K−1)所在列的右一列;
2.若 (K−1)在最后一列但不在第一行,则将填在第一列,( K−1)所在行的上一行;
3.若 ( K−1)在第一行最后一列,则将填在(K −1)的正下方;
4.若 (K−1)既不在第一行,也不在最后一列,如果( K−1)的右上方还未填数,
则将 K填在( K−1)的右上方,否则将填在( K− 1)的正下方。
现给定N,请按上述方法构造N∗N的幻方。
输入文件只有一行,包含一个整数,即幻方的大小。
输出文件包含N行,每行N个整数,即按上述方法构造出的N∗N的幻方。相邻两个整数之间用单个空格隔开。
3
8 1 6
3 5 7
4 9 2
对于 100%的数据,1 ≤ N ≤ 39且为奇数。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,a[][];
int main()
{
cin>>n;
memset(a,,sizeof a );
m=n*n;
int x=,y=(n+)/;
a[x][y]=;
for(int i=;i<=m;i++)
{
if(x==&&y!=n)
{ x=n; y++; a[x][y]=i;}
else
{
if(x!=&&y==n)
{ x--; y=; a[x][y]=i;}
else{
if(x==&&y==n)
{ x++; a[x][y]=i; }
else {
if(x!=&&y!=n)
{
if(a[x-][y+]==)
{x--;y++;a[x][y]=i; }
else{x++;a[x][y]=i;}
}
}
}
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return ;
}
思路:模拟~~
NOIP 2015普及组复赛Day1 T1 == Codevs4510 神奇的幻方的更多相关文章
- NOIP 2015提高组复赛
神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第 ...
- NOIP 2018 普及组 解题报告
目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...
- NOIP2018普及组复赛游记
2018年11月10日,NOIP2018普及组复赛. 这是我初中阶段最后一次复赛了. 和往常一样,我们在预定的早上7点,没有出发. 10分钟之后,人终于到齐了,于是出发了,一路无话. 到了南航,合照三 ...
- 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题
洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...
- NOIP 2015 提高组 Day1
期望得分:100+100+100=300 实际得分:100+100+45=245 T3 相似的代码 复制过去 没有改全,痛失55分 http://www.cogs.pro/cogs/page/page ...
- NOIP2016普及组复赛解题报告
提高组萌新,DAY1DAY2加起来骗分不到300,写写普及组的题目聊以自慰. (附:洛谷题目链接 T1:https://www.luogu.org/problem/show?pid=1909 T2:h ...
- noip2015day1 T1 4510 神奇的幻方
4510 神奇的幻方 noip2015day1 T1 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descripti ...
- 2015年NOIP普及组复赛题解
题目涉及算法: 金币:入门题: 扫雷游戏:入门题: 求和:简单数学推导: 推销员:贪心. 金币 题目链接:https://www.luogu.org/problem/P2669 入门题,直接开一个循环 ...
- 2010年NOIP普及组复赛题解
题目及涉及的算法: 数字统计:入门题: 接水问题:基础模拟题: 导弹拦截:动态规划.贪心: 三国游戏:贪心.博弈论. 数字统计 题目链接:洛谷 P1179 这道题目是一道基础题. 我们只需要开一个变量 ...
随机推荐
- iOS开发——实战OC篇&环境搭建之StoryBoard(玩转UINavigationController与UITabBarController)
环境搭建之StoryBoard(玩转UINavigationController与UITabBarController) 研究了这么就IOS开发,都没有所处一个像样或者自己忙一点的项目.最近自 ...
- oc-32-@property示例
Goods.h #import <Foundation/Foundation.h> typedef struct{ int year; int month; int day; } MyDa ...
- Linux用户空间与内核空间(理解高端内存)
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数 ...
- jq实现地址级联效果
(function ($) { $.fn.Address = function (options) { var defaults = { divid: "Address", cal ...
- 关于apache的重启
一:Apache重起的最好方法apachectl graceful http://blog.csdn.net/qianling3439/article/details/8622618 二:请问apac ...
- [Buzz.Today]2013.08.06
# 用简单方案解决80%的问题,再慢慢解决剩下20% [先完成,后完美]美国工程院院士.Google Fellow辛格的哲学:先用个简单方案解决80%的问题,再慢慢解决剩下20%.许多优秀人才都败在这 ...
- SQL Server 数据库文件管理
关于数据库文件的管理问题,我经常说,常在江湖混,哪有不挨棍,用的时间长了,基本上都有遇到一些数据库文件管理上的问题,比如说: 1. SQL Server数据文件空间满 2. 日志文件暴涨 3. 文件不 ...
- 给label绘制下划线
UIlabel本身没有下划线的属性,使用绘制的方法,添加下滑下,并且赋给该label一个action作为响应方法,实现DIY超链接的效果. //调用 #import "UnderLineLa ...
- [Javascript]jquery $(document).ready() 与window.onload的区别
引用:http://www.jb51.net/article/21628.htm Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload ...
- 重构7-Rename(method,class,parameter)
这是我最常用也是最有用的重构之一.我们对方法/类/参数的命名往往不那么合适,以至于误导阅读者对于方法/类/参数功能的理解.这会造成阅读者的主观臆断,甚至引入bug.这个重构看起来简单,但却十分重要. ...