luogu P1095 守望者的逃离 经典dp

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=300000+10;
int dp[N];
int m,s,t;
int main()
{
	cin>>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)
		{	
			cout<<"Yes"<<endl<<i;
			return 0;
		}
	}
	cout<<"No"<<endl<<dp[t]<<endl;
	return 0;
}
posted @ 2020-03-23 17:29  晴屿  阅读(117)  评论(0编辑  收藏  举报