zoukankan      html  css  js  c++  java
  • hdu--1087--dp

    ....海枯石烂了  做出个dp...虽然这个dp是那么水... but enough

      touch   me

    这题 只要读懂了题意就是了 

    其实我做的时候感觉是将LIS O(n^2)的算法思想涌过来就空余了 虽然这里不是求最长 而是求沿途值最大

    这里我写了2种 第2种对于ans的求解 在dp[i]计算的时候 求得 可以节省了一个for的时间 差了15ms吧

     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 const int size = 1010;
     6 int dp[size];
     7 int val[size];
     8 
     9 int main()
    10 {
    11     int n , ans;
    12     while( cin >> n && n )
    13     {
    14         ans = 0;
    15         for( int i = 1 ; i<=n ; i++ )
    16         {
    17             cin >> val[i];
    18             dp[i] = val[i];
    19         }
    20         for( int i = 1 ; i<=n-1 ; i++ )
    21         {
    22             for( int j = i+1 ; j<=n ; j++ )
    23             {
    24                 if( val[j] > val[i] )
    25                 {
    26                     dp[j] = max( dp[j] , val[j] + dp[i] );
    27                 }
    28             }
    29         }
    30         for( int i = 1 ; i<=n ; i++ )
    31         {
    32             ans = ans > dp[i] ? ans : dp[i];
    33         }
    34         cout << ans << endl;
    35     }
    36     return 0;
    37 }
    View Code
     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 const int size = 1010;
     6 int dp[size];
     7 int val[size];
     8 
     9 int main()
    10 {
    11     int n , ans;
    12     while( cin >> n && n )
    13     {
    14         ans = 0;
    15         for( int i = 1 ; i<=n ; i++ )
    16         {
    17             cin >> val[i];
    18             dp[i] = val[i];
    19         }
    20         for( int i = 1 ; i<=n ; i++ )
    21         {
    22             for( int j = i+1 ; j<=n ; j++ )
    23             {
    24                 if( val[j] > val[i] )
    25                 {
    26                     dp[j] = max( dp[j] , val[j] + dp[i] );
    27                 }
    28             }
    29             ans = ans > dp[i] ? ans : dp[i];
    30         }
    31         cout << ans << endl;
    32     }
    33     return 0;
    34 }
    View Code
    just follow your heart
  • 相关阅读:
    java编程规范
    Servlet生命周期
    BBS
    Hibernate主键自增策略
    MyBatis举例以及连接数据库过程
    myBatis框架的配置部分
    持续集成
    2017-02-23 .NET Core Tools转向使用MSBuild项目格式
    记录表TABLE中 INDEX BY BINARY_INTEGER 的作用
    什么是 BIND 变量?
  • 原文地址:https://www.cnblogs.com/radical/p/3881244.html
Copyright © 2011-2022 走看看