RT,这道题目我用贪心过了,但是还想用 DP 过一遍,结果 ……
5~10 全 WA。
附上代码:
#include <iostream>
#include <cstdio>
using namespace std;
const int INF=3e5+5;
int f[INF],m,s,t,last_m;
signed main()
{
scanf("%d %d %d",&m,&s,&t);
for (int i=1; i<=t; i++) {
if (m>=10) {
f[i]=max(f[i-1]+17,f[last_m]+60);
m-=10;
last_m=i;
}
else {
m+=4;
f[i]=f[i-1]+17;
f[i]=max(f[i],f[last_m]);
}
if (f[i]>s) {
printf("Yes\n%d\n",i);
return 0;
}
}
printf("No\n%d\n",f[t]);
return 0;
}
dalao 们,我哪里写错了?
禁止无意义回复