zoukankan      html  css  js  c++  java
  • P1244 NOI2000青蛙过河 [思维题]

    青蛙过河

    题目见标题链接 .


    color{red}{正解部分}

    开始前先说明 若跳到 BB 点, 则不能跳出 .

    F[i,j]F[i, j] 表示 ii 个石墩, jj 个荷叶的最优答案,

    首先 F[0,j]=j+1F[0, j] = j+1, 这很直观 , 然后考虑 F[1,j]F[1, j] 的值,
    现在中间有一个石墩, 设为 DD, 从起点先跳到 DD, 然后从起点跳到终点, 再把 DD 点的青蛙跳到 终点,
    可以得到 F[1,j]=F[0,j]+F[0,j]=2F[0,j]F[1, j] = F[0, j] + F[0, j] = 2*F[0,j] .

    再考虑 F[2,j]F[2, j] 的值, F[2,j]=F[1,j]+F[0,j]+F[0,j]=4F[0,j]F[2, j] = F[1, j] + F[0, j] + F[0, j] = 4*F[0, j]
    同理 F[3,j]=F[2,j]+F[1,j]+F[0,j]+F[0,j]=8F[0,j]F[3, j] = F[2, j] + F[1, j] + F[0, j] + F[0, j]=8*F[0,j],
    以此类推可得 F[i,j]=2iF[0,j]=2i(j+1).F[i, j] = 2^i * F[0,j] = 2^i*(j+1).


    color{red}{实现部分}

    #include<bits/stdc++.h>
    #define reg register
    
    int h;
    int k;
    
    int main(){
            scanf("%d%d", &h, &k);
            printf("%d
    ", (1<<h) * (k+1));
            return 0;
    }
    
  • 相关阅读:
    ubuntu18.04 扩展根目录 亲测有效
    mysql数据恢复
    java多线程
    jenkins安装搭建及使用
    springboot web开发
    git版本管理
    docker安装部署项目
    vue nuxt项目部署
    IntelliJ IDEA常用快捷键
    IntelliJ IDEA常用设置
  • 原文地址:https://www.cnblogs.com/zbr162/p/11822510.html
Copyright © 2011-2022 走看看