NOIP2007守望者的逃离(普及组T3)————动态规划,贪心

题解:本题主要考查动态规划,贪心。分析题意知:闪现一般比跑快。所以一开始用闪现,用max比较,可得答案。注意(要更新值,更新值,更新值!)
代码如下:

#include<iostream>
#include<algorithm>
using namespace std;
int m,s,times,i,j;
int dp[300001];
int main()
{
    cin>>m>>s>>times;
    for(i=1;i<=times;i++)
    {
        if(m>=10)
        {
            m=m-10;dp[i]=dp[i-1]+60;
        }
        else {m=m+4;dp[i]=dp[i-1];}
    }
    for(j=1;j<=times;j++)
    {
        dp[j]=max(dp[j],dp[j-1]+17);
        if(dp[j]>=s){cout<<"Yes"<<endl<<j;return 0;}
    }
    cout<<"No"<<endl<<dp[times];
    return 0;
}

猜你喜欢

转载自blog.csdn.net/wly1127/article/details/82914221