HDU 1087 求最長遞增子串行的和 DP

2022-01-19 17:59:43 字數 510 閱讀 3288

題意:這個樣例很誤導人啊,這個題意呢,就是從起點跳到終點,保持遞增跳而且得分最大。注意,起點和終點是不計分的;

解析:模板改一下就好了,之前求的是序列長度。這裡求和,那麼只要把dp初始化a[ ],依然還是**每個數選還是不選的問題。轉移方程:

if(a[i]>a[j])

dp[ i ]=max(dp[ i ],dp[ j ]+a[ i ])

#include#include

#include

#include

using

namespace

std;

const

int maxn = 1e6+10

;typedef

long

long

ll;ll a[maxn];

ll dp[maxn];

intmain()

}maxx=max(dp[i],maxx);

}cout

}}

HDU 1087 最大遞增子串行和

super jumping!jumping!jumping!題意 無聊的猿發明了 人贏跳跳棋 規則是要從start end,中途可以間隔著跳過若干個格仔,但是下一步位置的權值必須大於當前格仔的權值。最後,所經過格仔的權值和大的獲勝。分析 不連續的最大遞增子串行和問題。當我以第 i 個格仔作為終點時我...

LIS 求最長遞增子串行

動態規劃,dp 時間複雜度 olog n 2 include include include include include using namespace std int lis int a,int alen,int len if alen i maxlen return maxlen int m...

求最長單調遞增子串行

問題描述 設計乙個時間的演算法,找出由n個數組成的最長單調遞增子串行。演算法描述 演算法實現 includestruct date void ascorder struct date a,int n 輸出最長單調遞增子串行 找到最長單調遞增子串行開始的單元 int max 0 intfore for...