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

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

POJ 2533-Longest Ordered Subsequence(裸LIS)

2019-11-14 10:30:29
字體:
來源:轉載
供稿:網友

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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沈丘县| 新乐市| 厦门市| 泸定县| 灵川县| 明溪县| 灌云县| 雅江县| 林甸县| 堆龙德庆县| 玉溪市| 天等县| 吉木萨尔县| 琼海市| 台南市| 台中市| 崇礼县| 象州县| 光泽县| 西吉县| 清苑县| 惠东县| 宜良县| 北宁市| 定南县| 焦作市| 开平市| 武鸣县| 莫力| 鄂伦春自治旗| 兴山县| 什邡市| 蓝山县| 龙山县| 香河县| 彭山县| 祁门县| 桓仁| 遂溪县| 衡阳县| 景洪市|