POJ3903(dp最長上公升子串行STL)

2021-07-24 19:04:01 字數 531 閱讀 7105

題意:看樣例就知道。

思路:dp[i]的狀態是長度為i+1的上公升子串行中最小的值。

這裡用到了stl lower_bound標頭檔案是「algorithm」,函式lower_bound()在first和last中的前閉後開區間進行二分查詢,返回大於或等於val的第乙個元素位置。如果所有元素都小於val,則返回last的位置

#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

int dp[100010];

int a[100010];

int main()

for(int i = 0;i < n; i++)

printf("%d\n",lower_bound(dp,dp+n,inf)-dp); //很巧妙

}return 0;

}

POJ3903(dp,最長上公升子串行,最基礎題)

最長上公升子串行問題 定義dp i 以 a i 為末尾的 最長上公升子串行 的長度。遞推關係 dp i max 當 i j且a i a j 時 邊界控制 d i 1 include include include include using namespace std int dp 100010 i...

Dp 最長上公升子串 最長上公升子串行

乙個數的子串bi,當b1 b2 bs的時候,我們稱這個子串是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串 ai1,ai2,aik 這裡1 i1 i2 ik n。如 對於序列 1,7,3,5,9,4,8 有它的一些上公升子串,如 1,7 3,5,9 等等。這些子串中最長...

poj2533 最長上公升子串

題目大意 給你乙個字串,你要從裡邊找到最長的子串的長度,且這個子串必須是公升序。解題思路 dp 狀態變數 d i 以i結尾的最長上公升子串的長度 狀態轉移方程 d i max d i d j 1 j邊界 全初始化為1,因為每乙個單獨的字元都是乙個子串 include include include ...