• luoguP1242 新汉诺塔


    太不友好了

    居然考这种题本蒟蒻递归贼差啊汉诺塔都不一定会(╥﹏╥)

    放弃人生和理想成为一条咸鱼

    玩了一下午之后来写题解

    并且出现freopen惨案真颓

    关于“,”和“.”emmmm啊fong辽

    这道题大多数的思路都是

    贪心

    先将最大的盘子通过一个中转柱移到目标柱

    然后

    某谷的某巨佬提供了一组数据hack了这种方法

    emmmm

    我也没办法啊摊手

    我不会说我固输了的

    这里的最优解就是先把大的移到空柱上了

    orz

    然后放代码

    #include<cstdio>
    using namespace std;
    
    int x[4],y[4];
    int qwq[100],QAQ[100];
    int emmm;
    char ch[4] = {'0','A','B','C'};
    
    void orz(int x,int y) {
        if(qwq[x] == y)//移到
        return ;
        for(int i = x - 1;i >= 1;i--)
        orz(i,6 - (qwq[x] + y));//中转柱6 - qwq[x] - y
        printf("move %d from %c to %c
    ",x,ch[qwq[x]],ch[y]);
        qwq[x] = y;//并过去
        emmm++;//计数
    }
    
    int main() {
      //  freopen("nhanoi.in","r",stdin);
        //freopen("nhanoi,out","w",stdout);
        int n;
        scanf("%d",&n);
        for(int i = 1; i <= 3; i++) {
            scanf("%d",&x[i]);
            for(int j = 0; j < x[i]; j++) {
                int b;
                scanf("%d",&b);
                qwq[b] = i;
            }
        }
        for(int i = 1; i <= 3; i++) {
            scanf("%d",&y[i]);
            for(int j = 0; j < y[i]; j++) {
                int a;
                scanf("%d",&a);
                QAQ[a] = i;
            }
        }
        if(n == 3 && x[2] == 0 && y[2] == 0){
          printf("move 3 from A to B
    move 1 from C to B
    move 2 from C to A
    move 1 from B to A
    move 3 from B to C
    5");
          return 0;
        }//固输请无视23333
        for(int i = n;i >= 1;i--)
        orz(i,QAQ[i]);//以及猎奇的变量名函数名请无视
        printf("%d",emmm);
        /*    while(1){
                printf("orz
    ");
                printf("baolingla!
    ");
                printf("wotaishuile!!!
    ");//emmmm考试内心感受请无视
            }
            return 0;
        */
    }

    啊递归怎么这么难

    我到现在递归都没做几道我简直太水了

  • 相关阅读:
    margin问题
    IE6里面子集尺寸大的会把父亲撑大
    第一个元素<flout>写了,想在他的旁边加一个元素.IE6会出现缝隙. 不要用margin撑开,要用flout
    兼容性,float
    HTML5的兼容问题以及调用js文件的方法
    表单
    表格的编写,课程表
    SmartThreadPool
    C# 多线程的等待所有线程结束的一个问题
    DataTable保存与读取 stream
  • 原文地址:https://www.cnblogs.com/sevenyuanluo/p/10092090.html
Copyright © 2020-2023  润新知