1300:鸡蛋的硬度

鸡蛋的硬度

简单的解释在代码里有进行说明。

具体的题解可参考 大佬

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 const int N=105;
 5 int f[N][N];
 6 
 7 int main(){
 8     int n,m;
 9     while(cin>>n>>m){
10         for(int i=1;i<=n;i++)
11             for(int j=1;j<=m;j++)
12                 f[i][j]=i;//初始化为最坏情况
13         //f[k-1][j-1]表示在第k层砸下一个鸡蛋并且碎了后需要采取的策略
14         //f[i-k][j]表示在第k层砸下一个鸡蛋没碎需要采取的策略
15         for(int i=1;i<=n;i++)
16             for(int k=1;k<=i;k++)
17                 for(int j=2;j<=m;j++)
18                     f[i][j]=min(f[i][j],max(f[k-1][j-1],f[i-k][j])+1);
19         cout<<f[n][m]<<endl;
20     }
21     return 0;
22 }

 

posted @ 2021-08-23 18:53  Rekord  阅读(330)  评论(0编辑  收藏  举报