题解 P1549 【棋盘问题(2)】

· · 题解

大佬 蒟蒻表示DFS超时了,一看1≤N≤10,当然得打表啊,大佬勿喷。

此题解只是来搞笑的。

打表都会吧!!!

代码也不用解释了吧!!!

#include<bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cout.tie(NULL);
    //freopen("","r",stdin);
    //freopen("","w",stdout);
    int n;
    cin>>n;
    if(n==1||n==3||n==9)
    {
        cout<<"NO"<<endl;
        return 0;
    }
    if(n==2)
    {
        cout<<"1 2"<<endl<<"4 3"<<endl;
        return 0;
    }
    if(n==4)
    {
        cout<<"1 2 11 12"<<endl;
        cout<<"4 9 8 5"<<endl;
        cout<<"7 10 3 14"<<endl;
        cout<<"6 13 16 15"<<endl;
        return 0;
    }
    if(n==5)
    {
        cout<<"1 2 3 4 7" <<endl;
        cout<<"6 5 14 15 16" <<endl;
        cout<<"13 24 23 8 21" <<endl;
        cout<<"10 19 18 11 20" <<endl;
        cout<<"9 22 25 12 17" <<endl;
        return 0;
    }
    if(n==6)
    {
        cout<<"1 2 3 4 7 6" <<endl;
        cout<<"10 27 34 19 24 5" <<endl;
        cout<<"13 16 25 18 35 26" <<endl;
        cout<<"30 31 12 29 32 21" <<endl;
        cout<<"11 36 17 14 9 22" <<endl;
        cout<<"8 23 20 33 28 15" <<endl;
        return 0;
    }
    if(n==7)
    {
        cout<<"1 2 3 4 7 6 5" <<endl;
        cout<<"10 21 16 13 24 23 14" <<endl;
        cout<<"9 22 25 48 35 44 45" <<endl;
        cout<<"8 15 28 19 18 29 38" <<endl;
        cout<<"11 32 39 34 49 30 41" <<endl;
        cout<<"12 47 20 27 40 31 42" <<endl;
        cout<<"17 26 33 46 43 36 37" <<endl;
        return 0;
    }
    if(n==8)
    {
        cout<<"1 2 3 4 7 6 5 8" <<endl;
        cout<<"10 21 20 27 34 25 12 11" <<endl;
        cout<<"9 22 39 40 19 28 31 30" <<endl;
        cout<<"14 45 44 63 64 43 36 17" <<endl;
        cout<<"15 56 57 46 37 60 47 62" <<endl;
        cout<<"16 51 52 61 42 29 32 41" <<endl;
        cout<<"13 58 49 48 59 24 35 26" <<endl;
        cout<<"18 55 54 53 50 23 38 33" <<endl;
        return 0;
    }
    if(n==10)
    {
        cout<<"1 2 3 4 7 6 5 8 9 10"<<endl;
        cout<<"12 29 38 33 34 25 36 23 44 27" <<endl;
        cout<<"11 30 41 26 45 22 31 48 35 32" <<endl;
        cout<<"18 43 60 47 56 51 28 19 24 65" <<endl;
        cout<<"13 40 49 54 53 50 39 64 37 42" <<endl;
        cout<<"16 21 52 55 84 89 62 75 76 97" <<endl;
        cout<<"15 58 79 72 95 68 69 82 91 66" <<endl;
        cout<<"14 93 88 85 96 83 98 81 100 73" <<endl;
        cout<<"17 86 63 46 67 90 59 92 99 94" <<endl;
        cout<<"20 77 74 57 70 61 78 71 80 87"<<endl;
        return 0;
    }
    return 0;
}