zoukankan      html  css  js  c++  java
  • Ural的鹰蛋实验

    题目描述

    在ural大学的一个教授的别墅上有一鹰巢。教授对这个鹰巢很感兴趣。经过仔细观察,他发现鹰巢中有若干枚蛋。于是他想利用这些蛋做一个试验。测试一下蛋的坚固程度。
    这些蛋应该是具有相同的坚硬度。存在一个非负整数E,如果从楼的第E层往下扔蛋,但不会破,但如果从第E+1层(包括高于E+1层)扔,蛋就会破。你要做一组试验,来找出E。最简单的方法是一层层试。但是你有多个蛋是,不必用笨方法,可以用更少的次数找出E。注意这里的次数都是指对你的方法的最坏情况且蛋破了就不能再用,还有E可以取0。
    如果实验到了最高层蛋还不破,则认为E取最高层的层数。

    输入格式

    一行,蛋的个数n和楼的层数n,k<=1000。(中间一个空格)

    输出格式

    最少实验次数。

    非常神奇的动态规划题,趣味无穷。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int n,m,f[11][1001];
     5 
     6 int min(int a,int b){
     7     if(a>b) return b;return a;
     8     }
     9 int max(int a,int b){
    10     if(a>b) return a;return b;
    11     }
    12 
    13 int main()
    14 {
    15  
    16     cin>>n>>m;
    17     n=min(n,10);            
    18      
    19     for(int i=1;i<=m;++i)
    20     f[1][i]=i;
    21       
    22     for(int i=2;i<=n;++i)
    23     for(int j=1;j<=m;++j)
    24     for(int k=1;k<=j;++k)
    25     if(f[i][j]==0) f[i][j]=1+max(f[i-1][k-1],f[i][j-k]);
    26     else f[i][j]=min(f[i][j],1+max(f[i-1][k-1],f[i][j-k]));
    27       
    28     cout<<f[n][m]<<endl;
    29    // system("pause");
    30     
    31     return 0;
    32     
    33     }
  • 相关阅读:
    .NET XmlNavigator with Namespace
    编程要素
    【FOJ】1962 新击鼓传花游戏
    【POJ】1389 Area of Simple Polygons
    【POJ】2482 Stars in Your Window
    【HDU】3265 Posters
    【HDU】1199 Color the Ball
    【HDU】3642 Get The Treasury
    【HDU】4027 Can you answer these queries?
    【HDU】1542 Atlantis
  • 原文地址:https://www.cnblogs.com/noip/p/2649694.html
Copyright © 2011-2022 走看看