洛谷 P1095 守望者的逃離
阿新 • • 發佈:2019-02-10
閃爍 逃離 con new 收益 枚舉 show ostream const
傳送門:洛谷 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; }
洛谷 P1095 守望者的逃離