2015 NOIP day1 t1 神奇的幻方 (简单模拟)

原创 2015年11月19日 20:11:16

题目链接
题意:略
解答:直接模拟

#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
#define pb push_back
#define X first
#define Y second
#define cl(a,b) memset(a,b,sizeof(a))
typedef pair<int,int> P;
const int maxn=100005;
const LL inf=1<<27;
const LL mod=1e9+7;
int a[40][40];
int n;
void getXY(int k,int&x,int&y){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]==k){
                x=i;y=j;return ;
            }
        }
    }
}
/**
8 1 6
3 5 7
4 9 2
**/
int main(){
    scanf("%d",&n);
    a[1][(n+1)/2]=1;
    for(int k=2;k<=n*n;k++){
        int x,y;
        getXY(k-1,x,y);
        if(x==1&&y!=n){
            a[n][y+1]=k;
        }
        else if(y==n&&x!=1){
            a[x-1][1]=k;
        }
        else if(x==1&&y==n){
            a[x+1][y]=k;
        }
        else if(x!=1&&y!=n){
            if(a[x+-1][y+1]==0){
                a[x-1][y+1]=k;
            }
            else {
                a[x+1][y]=k;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            printf("%d%c",a[i][j],j==n?'\n':' ');
        }
        //printf("\n");
    }
    return 0;
}
版权声明:一个菜逼的笔记,并没有什么题解。。。

相关文章推荐

神奇的幻方 NOIP2015 提高组 Day1 T1

洛谷 P2615 神奇的幻方题目描述幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行、每列及两条对角线上的数字之和都相同。当N为奇数时,我们可以通过以下方法构建一个幻方:首先...

NOIP2015复赛提高组day1(A:神奇的幻方 B:信息传递 C:斗地主)

今天原本不想写题解的,但还是写了,毕竟不能落太久。。 但是题解肯定很粗糙 A题: 向来是水题根据题意随便模拟一下就好了#include #define M 55 int a[M][M]; int...

【NOIP2015提高组Day1】 神奇的幻方

【问题描述】 幻方是一种很神奇的 N*N矩阵:它由数字1,2,3, … … ,N*N 构成,且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1...

[NOIP2015] day2 T1 跳石头

大家都很强,可与之共勉。NOIP2015】day2 跳石头 题目描述一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛...

【NOIP 2015 Day2 T1】跳石头(二分)

题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和...
  • Loi_YZS
  • Loi_YZS
  • 2016年10月13日 17:22
  • 414

【NOIP2015TG D1T3】斗地主

第一篇Blog交给一道大搜索……作为NOIP2015Day1的最后一题斗地主并不难想出做法,但是写起来太麻烦了……很多人一看见题目就失去了做这道题的勇气,其实这个题本身还是挺好写的,只是代码相对长许多...

[NOIP 2015]Day.1 T2 信息传递 【最小环】

一句话题意:求最小环70分·dfs#include #include #include #include #include using namespace std; const int maxn = ...

跳石头 NOIP2015 提高组 Day2 T1

codevs 4768 跳石头 题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛...

noip2015 day1 t2 message 伪·题解

noip2015 day1 t2 message 伪·题解

信息传递 NOIP2015 提高组 Day1 T2

codevs 4511 信息传递 NOIP2015 day1 T2题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2015 NOIP day1 t1 神奇的幻方 (简单模拟)
举报原因:
原因补充:

(最多只允许输入30个字)