求助!为什么有些点MLE,有些点又AC了?
以下是代码:
#include<bits/stdc++.h>
using namespace std;
int dp[300000+10][1000+10],ti=0x7fffffff;
int main()
{
int m,s,t;
cin>>m>>s>>t;
for(int i=1;i<=t;++i)
for(int j=1;j<=m;++j)
{
dp[i][j]=max(dp[i-1][j]+17,dp[i-1][j+4]);
if(j>=10&&dp[i-1][j-10]+60>dp[i][j])
dp[i][j]=dp[i-1][j-10]+60;
if(dp[i][j]>=s)ti=min(ti,i);
}
if(dp[t][m]<s)cout<<"No"<<endl<<dp[t][m];
else cout<<"Yes"<<endl<<ti;
return 0;
}
感谢指教!