1. 程式人生 > >資訊學奧賽一本通 1300 雞蛋的硬度#線性動態規劃#

資訊學奧賽一本通 1300 雞蛋的硬度#線性動態規劃#

雞蛋的硬度

題目描述

求最壞情況的最少情況

=min(max()) 最大值最小!

so分析開始了

來個圖就可以了。

**狀態轉移方程**

狀態轉移方程

f[i][j]=min(f[i][j],max(f[k-1][j-1],f[n-k][j]));

程式碼如下

#include < cstdio >
#include < algorithm >
#include < cstring >
using namespace std;
int f[101][11],n,m,t;
int main(){
    memset(f,127
/3,sizeof(f));//初始化一個很大的數 for (int i=1;i<=100;i++) f[i][1]=i;//(只有一個雞蛋為層數) for (int j=0;j<=10;j++) f[0][j]=0;//(沒有雞蛋為0) for (int i=1;i<=100;i++) for (int j=1;j<=10;j++) for (int k=1;k<=i;k++) f[i][j]=min(max(f[k-1][j-1],f[i-k][j])+1,f[i][j]); while (scanf("%d%d",&n,&m)==2
)printf("%d\n",f[n][m]); return 0; }