51nod1134 最長遞增子串行

2021-08-07 09:11:07 字數 858 閱讀 8707

1134 最長遞增子串行

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題

給出長度為n的陣列,找出這個陣列的最長遞增子串行。(遞增子串行是指,子串行的元素是遞增的)

例如:5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。

input

第1行:1個數n,n為序列的長度(2 <= n <= 50000)

第2 - n + 1行:每行1個數,對應序列的元素(-10^9 <= s[i] <= 10^9)

output

輸出最長遞增子串行的長度。
input示例

851

6824

510

output示例

5
思路:最長上公升子串行 n*logn演算法。把a[i]中的元素儲存在dp陣列中,如果a[i] > dp[ans],則直接放在dp[++ ans]的位置上,否則從dp中查詢到第乙個大於a[i]的值替換掉即可

ac**如下:

#include using namespace std;

const int maxn = 5e5 + 5;

int a[maxn],n,dp[maxn];

int main()

int ans = 0;

dp[0] = a[0];

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

} printf("%d\n",ans+1);

} return 0;

}

51nod 1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1秒 空間限制 131072 kb 分值 0給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n為序列的長度 2 ...

51nod 1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n...

51nod1134最長遞增子串行

給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n為序列的長度 2 n 50000 第2 n 1行 每行1個數,對應序列的元素 10 9 s i 10 ...