题解:P1095 [NOIP2007 普及组] 守望者的逃离
__mutsumi__ · · 题解
很显然,在魔法值大于
注释在代码里面有点少
#include<bits/stdc++.h>
using namespace std;
int m,s,t,ma,dp[300005];
int main(){
cin>>m>>s>>t;
for(int i=1;i<=t;i++){//dp[i]为用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);//将第i-1秒用来跑
ma=max(ma,dp[i]);//更新最远距离
if(dp[i]>s){
printf("Yes\n%d",i);
return 0;
}
}
printf("No\n%d",ma);
return 0;
}