Educational Codeforces Round 16 C 题 Magic Odd Square

原创 2016年08月30日 16:00:01



C. Magic Odd Square
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column and both main diagonals are odd.

Input

The only line contains odd integer n (1 ≤ n ≤ 49).

Output

Print n lines with n integers. All the integers should be different and from 1 to n2. The sum in each row, column and both main diagonals should be odd.

Examples
input
1
output
1
input
3
output
2 1 4
3 5 7
6 9 8


 题目大意为:输入一个奇数整数n,输出一个由1-n*n组成的矩阵中每个数都不相同且每行每列和两个对角线上每个元素的和都为奇数。

 此题有两个需要注意的地方:

1:1这个数放在第一行最中间一列。

2:从1-n*n,每个数放在前一个数的右上角,即行加1,列减1(特判:上一个数在第一行第n列的时候,这个数应该在第二行第n列)。如果越界,即上个数行是1,列不为n,这个数行为n,列加1;上个数列为n,行不为1,这个数列为1,行加1.

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 500
using namespace std;
int ans[N][N];
int main()
{
    int n,m,i,j,k,x,y,tx,ty;
    scanf("%d",&n);
    m=n*n;
    x=1,y=n/2+1;
    ans[x][y]=1;
    for(i=2; i<=m; i++)
    {
        if(x==1&&y!=n)
        {
            tx=n,ty=y+1;

        }
        else if(y==n&&x!=1)
        {
            tx=x-1,ty=1;
        }
        else if(x==1&&y==n)
        {
            tx=x+1,ty=y;
        }
        else
        {
            if(ans[x-1][y+1])
                tx=x+1,ty=y;
            else
                tx=x-1,ty=y+1;
        }
        ans[tx][ty]=i;
        x=tx,y=ty;
    }
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
        {
            printf("%d ",ans[i][j]);
        }
        puts("");
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Codeforces Round #406 (Div. 2):C. Berzerk(记忆化搜索解决博弈问题)

C. Berzerk time limit per test 4 seconds memory limit per test 256 megabytes input standard in...
  • Jaihk662
  • Jaihk662
  • 2017年03月24日 15:23
  • 805

【Codeforces Round 375 (Div 2) E】【欧拉回路Fleury算法 或网络流】One-Way Reform 每条边定向使得最多的点满足入度=出度

E. One-Way Reform time limit per test 2 seconds memory limit per test 256 megabytes ...
  • snowy_smile
  • snowy_smile
  • 2016年10月04日 10:20
  • 738

Codeforces 375D 数据结构(好题中的好题, 4解)

题目链接:http://codeforces.com/problemset/problem/375/D 全部代码: 题意:给你一棵树n个点,m次询问(n=100000,m=100000),每个节点有一...
  • c3568
  • c3568
  • 2014年03月25日 19:38
  • 1427

CodeForces 171F(千古神题。。)

CF神题
  • sky_miange
  • sky_miange
  • 2015年02月12日 19:01
  • 608

codeforces 627 problem A 好题呀,感觉学到了挺多的 亦或

A. XOR Equation time limit per test 2 seconds memory limit per test 256 megabytes input standa...
  • zcj5027
  • zcj5027
  • 2016年03月24日 21:11
  • 695

codeforces Line 7C (拓展欧几里德+思想 模板) 好题

C. Line Description A line on the plane is described by an equation Ax + By + C = 0. You are to f...
  • yanghui07216
  • yanghui07216
  • 2015年10月24日 21:04
  • 382

Codeforces 798D Mike and distribution【思维+贪心】好题!好题!感觉智商受到了一万点伤害= =

D. Mike and distribution time limit per test 2 seconds memory limit per test 256 megabytes ...
  • mengxiang000000
  • mengxiang000000
  • 2017年05月03日 21:19
  • 404

概率dp入门的简单题(hdu 4405,牡丹江,codeforces)

最近学习了一下概率dp,感觉没有想象中的那么难。主要还是状态的转移方程的构建。 对于”求概率正推,求期望反推“这句话有了初步的理解。期望的意思是说你现在处在一个状态,还需要几步到达最终状态,这是一个期...
  • NK_test
  • NK_test
  • 2015年05月07日 23:58
  • 725

codeforces 237/A 一道水题的感悟。。。。

http://codeforces.com/problemset/problem/237/A Valera runs a 24/7 fast food cafe. He magically ...
  • u013573047
  • u013573047
  • 2014年04月08日 17:57
  • 689

LCT模板及详细讲解

Link cut tree 从一个例子引入: 传送门 此题有两种解法,这里只提LCT的方法。 一棵树上有n个节点,有3个操作: 1、将节点u的权值改为t。 2、询问从点u到点v的路径上的节点的最大权...
  • Leo_Nasir
  • Leo_Nasir
  • 2017年09月08日 19:35
  • 119
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Educational Codeforces Round 16 C 题 Magic Odd Square
举报原因:
原因补充:

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