tjsudys 2016-04-11 08:49:59
点我顶贴
收藏
删除
#include <iostream>
#include<cmath>
using namespace std;
int min_time[13][1010]={0};
int cal_ans(int n,int m)
{
for(int i=1;i<=m;i++)
min_time[1][i]=i;
for(int i=1;i<=n;i++)
{
min_time[i][1]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=2;j<=m;j++)
{
int minn=1010;
for(int t=1;t<=j;t++)
{
int maxx=0;
maxx=max(min_time[i-1][t-1]+1,min_time[i][j-t]+1);
minn = min(maxx,minn);
}
min_time[i][j]=minn;
}
}
return min_time[n][m];
}
int main() {
// your code goes here
int n,m;
cin>>n>>m;
if(n>log(m)/log(2)+1)
{
n=log(m)/log(2)+1;
}
cout<<cal_ans(n,m)<<endl;
return 0;
}
以上代码。应为等待小0而超时了无数次。。
因为满以为log是以2为底 最后一个数据已知返回11 WA80无数次。。