1. 程式人生 > >NOIP2007守望者的逃離(普及組T3)————動態規劃,貪心

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;
}