noip2015神奇的幻方

来源:互联网 发布:建筑行业证书 知乎 编辑:程序博客网 时间:2024/04/28 11:12

模拟……题目花式看错……调完后码的和书上一样emmmm……框架还是记住了……和数学分类讨论一样
注意不能直接用x和y,要用中间变量nx,ny

#include<iostream>using namespace std;int n,m,a[40][40],x,y;int main(){    cin>>n;    a[1][n/2+1]=1;    x=1,y=n/2+1;    m=n*n;    for(int i=2;i<=m;++i)    {        int nx,ny;        if(x==1&&y!=n)        {            nx=n;            ny=y+1;        }        else if(x!=1&&y==n)        {            nx=x-1;            ny=1;        }        else if(x==1&&y==n)//看清题目啊我去         {            nx=x+1;            ny=y;        }        else if(x!=1&&y!=n)        {            if(!a[x-1][y+1])                nx=x-1,ny=y+1;            else                nx=x+1,ny=y;        }        a[nx][ny]=i;        x=nx;        y=ny;    }    for(int i=1;i<=n;++i)    {        for(int j=1;j<n;++j)        {            cout<<a[i][j]<<" ";        }        cout<<a[i][n]<<endl;    }    return 0;}
原创粉丝点击