zoukankan      html  css  js  c++  java
  • 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;
        */
    }

    啊递归怎么这么难

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

  • 相关阅读:
    安装virtualbox后无法上网
    win8 添加语言现象 (中英文切换路径)
    pre-condition & post-condition
    win8系统 host process for windows tasks has stopped working
    Chrome一直提醒要翻译网页
    百度首页导航设置
    停止windows8自动下载更新系统
    win8 添加开机启动项 (类似win7系统中开始->选择要启动的程序)
    扩展欧几里得定理
    UVA1583-Digit Generator(紫书例题3.5)
  • 原文地址:https://www.cnblogs.com/sevenyuanluo/p/10092090.html
Copyright © 2011-2022 走看看