• 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
  • 相关阅读:
    51. N皇后-递归dfs+回溯-困难
    Python基础/注意事项
    22. 括号生成-递归dfs回溯-中等难度
    40. 组合总和 II-递归dfs+剪枝-中等难度
    90. 子集 II-递归+dfs-中等难度
    78. 子集-递归+dfs-中等难度
    871. 最低加油次数-贪心-困难
    T-SQL 日期函数
    T-SQL DISTINCT子句 去重复
    T-SQL 数值函数
  • 原文地址:https://www.cnblogs.com/radical/p/3881244.html
Copyright © 2020-2023  润新知