求助 DP 40 分
查看原帖
求助 DP 40 分
128754
方123456楼主2020/7/19 14:12

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 们,我哪里写错了?

禁止无意义回复

2020/7/19 14:12
加载中...