首页 > 其他 > 详细

【解题报告】[动态规划]RQNOJ - PID82 / 又上锁妖塔

时间:2014-05-09 10:16:04      阅读:348      评论:0      收藏:0      [点我收藏+]

原题地址:http://www.rqnoj.cn/problem/82

解题思路:

  简单的动态规划

  状态表示:DP[i][0]表示当前在第i层,且当前跳跃状态不可用,此时消耗的最短时间。

         DP[i][1]表示当前在第i层,且当前跳跃状态可用,此时消耗的最短时间。

  状态转移方程:

      DP[i][0]=min(DP[i-1][1],DP[i-2][1]);
      DP[i][1]=min(DP[i-1][0],DP[i-1][1])+t[i-1];

  初始状态:

      DP[0][0]=INF

      DP[0][1]=0

解题代码:

bubuko.com,布布扣
 1 #include<stdio.h>
 2 #include<iostream>
 3 using namespace std;
 4 int t[10005],n;
 5 int dp[10005][2];
 6 int min(int x,int y)
 7 {
 8     return x<y?x:y;
 9 }
10 int main()
11 {
12     int i;
13     cin>>n;
14     for(i=0;i<n;i++)
15     {
16         scanf("%d",&t[i]);
17     }
18     dp[0][1]=0;
19     dp[1][0]=0;
20     dp[1][1]=t[0];
21     for(i=2;i<=n;i++)
22     {
23         dp[i][0]=min(dp[i-1][1],dp[i-2][1]);
24         dp[i][1]=min(dp[i-1][0],dp[i-1][1])+t[i-1];
25         //printf("%d  %d\n",dp[i][0],dp[i][1]);
26     }
27     printf("%d\n",min(dp[n][0],dp[n][1]));
28     return 0;
29 }
View Code

 

【解题报告】[动态规划]RQNOJ - PID82 / 又上锁妖塔,布布扣,bubuko.com

【解题报告】[动态规划]RQNOJ - PID82 / 又上锁妖塔

原文:http://www.cnblogs.com/syiml/p/3716888.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!