1 条题解

  • 0
    @ 2025-8-24 22:11:32

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar louhao088
    这个家伙不懒,但还是什么都没留下

    搬运于2025-08-24 22:11:32,当前版本为作者最后更新于2020-10-28 22:29:30,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    点开这道题发现N<=10N<=10,脑海中立刻浮现一种算法 打表

    过程就不必多说,深搜暴力跑上几天总能跑完,只是求第一行加第一列和最小很恶心,WAWA了好几次

    上代码

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

    打表可以自己去尝试一下,不要直接抄袭

    • 1

    信息

    ID
    4507
    时间
    3000ms
    内存
    125MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者