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 ...