码迷,mamicode.com
首页 > 其他好文 > 详细

luogu P1095守望者的逃离【dp】By cellur925

时间:2018-09-16 20:51:59      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:冲突   include   close   mes   技术   color   text   alt   style   

题目传送门

考虑dp,设f[i]表示到第i时间,能到达的最远距离。因为题目涉及了三种操作:1,补血消耗魔法值;2, 等待增加魔法值;3,直接向前走。而1,3和2,3的操作是可以同时进行没有冲突的,所以我们可以分开处理。

先预处理出使用魔法的情况,再跑一遍朴素走的情况即可。

Code

技术分享图片
 1 #include<cstdio>
 2 #include<algorithm>
 3 
 4 using namespace std;
 5 
 6 int m,s,t;
 7 int f[500000];
 8 
 9 int main()
10 {
11     scanf("%d%d%d",&m,&s,&t);
12     for(int i=1;i<=t;i++)
13     {
14         if(m>=10) m-=10,f[i]=f[i-1]+60;
15         else m+=4,f[i]=f[i-1];
16     }
17     for(int i=1;i<=t;i++)
18     {
19         f[i]=max(f[i-1]+17,f[i]);
20         if(f[i]>=s)
21         {
22             printf("Yes\n");
23             printf("%d",i);
24             return 0;
25         }
26     }
27     printf("No\n");
28     printf("%d",f[t]);
29     return 0;
30 }
View Code

我dp太弱了这么水的题还要看题解

luogu P1095守望者的逃离【dp】By cellur925

标签:冲突   include   close   mes   技术   color   text   alt   style   

原文地址:https://www.cnblogs.com/nopartyfoucaodong/p/9657075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!