zoukankan      html  css  js  c++  java
  • 【解题报告】[动态规划]RQNOJ

    原题地址: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

    解题代码:

     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
    ",dp[i][0],dp[i][1]);
    26     }
    27     printf("%d
    ",min(dp[n][0],dp[n][1]));
    28     return 0;
    29 }
    View Code
  • 相关阅读:
    servlet简介
    synchronized锁的升级过程
    volatile的作用及原理
    redis数据类型
    mysql的主从复制
    redis的缓存穿透,缓存击穿,缓存雪崩
    网络从io到多路复用
    mysql索引
    mysql的执行计划
    mysql 常用函数
  • 原文地址:https://www.cnblogs.com/syiml/p/3716888.html
Copyright © 2011-2022 走看看