zoukankan      html  css  js  c++  java
  • 洛谷P1244 青蛙过河 DP/思路

    又是一道奇奇怪怪的DP(其实是思路题).

    原文戳>>https://www.luogu.org/problem/show?pid=1244<<

    这题的意思给的挺模糊,需要一定的人生经验理解能力.

    题目想必已知,我就提几点可能会搞错的点吧.

    1.题目说了青蛙可以:A→B(表示可以从A跳到B,下同),A→C,A→D,C→B,D→B,D→C,C→D;但却不能跳到A,B上再跳回来.所以不可以脑补成汉内塔那种跳法.

    2.青蛙只能跳到比它大1号的青蛙上面,而不是比他大的青蛙就行.所以不可以脑补成汉内塔.

    3.可以把一套操作看成一个单位元.我对一套操作的定义如下:

    当k确定而h=0时,没有中间柱子,蛤蛤们只能通过荷叶来移动.每片荷叶只能有1位青蛙.所以要求最大的通过数目就必须把所有的荷叶用上.西方哪一片荷叶我.....

    由于他们必须按顺序从小到大从上到下垒起来.所以这种情况下,最大通过数目为k+1.

          如k=4时 

             1                              

             2

             3

             4

             5 

             A          _  _  _  _          B

             从上到下跳到荷叶上:

             5          1  2  3  4                    

             A          _  _  _  _          B

             最后一位直接到B

                         1  2  3  4          5         

             A          _  _  _  _          B

             然后只能4先跳到B上

                                                4

                         1  2  3             5         

             A          _  _  _  _         B

    直至完成全部操作.这个过程就是通过两个柱子和k片荷叶完成的一个单位操作 .之后为了简化问题,我们以单位操作为最小单位讨论问题.

    我们把单位元编号,若荷叶有k片,则一个单位最多移动k+1只青蛙.我们令第1到k+1只为整体D1,而k+2到2k+2为D2,以此类推.

              假设情况柱子有1根,则易得最多通过2个单位青蛙.(D1-->柱1,D2-->B,D1-->B)

              有两根时,我们模拟过程:D1-->柱1,D2-->柱2,这个时候第一这个整体可以满足条件跳到D2头上,D1-->柱2,之后,柱1空着,加入D3,D3-->柱1,

              但此时D2被压在下面,所以就没有骚操作可以再进行了,只能加入D4直接跳到B.然后依次全部跳到B.得出结论.h=2时 通过4个单位.

              当没有柱子时,显然只有一个单位通过.观察结论,得出公式:当有k荷叶,h柱时,可通过青蛙(k+1)*2^h只.

              答案就出来了,虽然代码很简单,但还是贴一下.

    #include<iostream>
    #include<math.h>
    using namespace std;
    int main()
    {
        int i,j,m,h,k,a;
        while(cin>>h>>k)
        cout<<(k+1)*pow(2,h)<<endl;
    }

    希望各位在写完后可以为(k+1)*2^h只青蛙奉献出(k+1)*2^h秒,不然他们可能会非常angry.

    PS 这题我没用DP,标签摘了洛谷的~

  • 相关阅读:
    20160421
    20160420笔记
    第一个随笔
    搬家
    OO第十五次作业
    OO第三次博客作业
    OO5-7次作业总结
    从入门到不放弃——OO第一次作业总结
    第八次团队作业——系统设计和任务分配
    第七次作业-团队选题报告和需求规格说明书
  • 原文地址:https://www.cnblogs.com/wsblm/p/6964714.html
Copyright © 2011-2022 走看看