洛谷 P1095 守望者的逃离

传送门:洛谷 P1095 守望者的逃离
算法分析:分两种情况:
1、运用贪心,尽可能用闪烁法术
2、枚举秒数,判断此时用跑步速度是否能获得更大收益

时间复杂度:\(O(t)\)


#include<iostream>
#include<cstdio>
using namespace std;
const int maxT=300000;
int t,m,s,dp[maxT+1],ans=0;
int main()
{
    scanf("%d%d%d",&m,&s,&t);
    for(int i=1;i<=t;i++)
    {
        if(m>=10) {dp[i]=dp[i-1]+60; m-=10;}
        else {dp[i]=dp[i-1]; m+=4;}
    }
    for(int i=1;i<=t;i++)
    {
        dp[i]=max(dp[i],dp[i-1]+17);
        if(dp[i]>=s) {ans=i; break;}
    }
    if(ans) printf("%d",ans);
    else printf("%d",dp[s]);
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/ezsyshx/p/10359365.html