国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

POJ 2533-Longest Ordered Subsequence(裸LIS)

2019-11-14 11:16:41
字體:
來源:轉載
供稿:網友

Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 49498 Accepted: 21975 Description

A numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the subsequence of the given numeric sequence (a1, a2, …, aN) be any sequence (ai1, ai2, …, aiK), where 1 <= i1 < i2 < … < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).

Your PRogram, when given the numeric sequence, must find the length of its longest ordered subsequence. Input

The first line of input file contains the length of sequence N. The second line contains the elements of sequence - N integers in the range from 0 to 10000 each, separated by spaces. 1 <= N <= 1000 Output

Output file must contain a single integer - the length of the longest ordered subsequence of the given sequence. Sample Input

7 1 7 3 5 9 4 8 Sample Output

4

分析 裸的LIS題,時間復雜度nlogn

AC代碼

#include<cstdio>#define N 1005int arr[N];int B[N]; int bisearch(int *arr,int len,int key){ int l=0,r=len-1; while(l<=r){ int m=(l+r)>>1; if(arr[m] == key ) return m; else if(arr[m] < key) l=m+1; else r=m-1; } return l;}int calc_LIS(int *arr,int n){ B[0]=arr[0]; int len=1; for(int i=1;i<n;i++){ int pos=bisearch(B,len,arr[i]); B[pos]=arr[i]; if(pos >=len) len++; } return len;}int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",arr+i); printf("%d/n",calc_LIS(arr,n)); return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新龙县| 娱乐| 临清市| 丰顺县| 吉木萨尔县| 铜梁县| 电白县| 武宣县| 达拉特旗| 那曲县| 黄骅市| 怀集县| 乐至县| 台南市| 昆山市| 洪江市| 武山县| 木里| 西昌市| 同心县| 石渠县| 双城市| 息烽县| 峨边| 瓦房店市| 纳雍县| 双柏县| 习水县| 师宗县| 离岛区| 水富县| 沾化县| 洞头县| 全南县| 崇礼县| 宣恩县| 台安县| 新丰县| 贵港市| 防城港市| 铜川市|