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

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

POJ 2533-Longest Ordered Subsequence(裸LIS)

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

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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平江县| 乐亭县| 红桥区| 梅州市| 孟连| 潍坊市| 麻栗坡县| 桦川县| 崇阳县| 阜平县| 山西省| 白沙| 武胜县| 冕宁县| 商河县| 大石桥市| 黔南| 谷城县| 和平区| 乳山市| 鄂托克旗| 安多县| 葫芦岛市| 南江县| 三亚市| 白银市| 广东省| 温泉县| 新巴尔虎左旗| 永昌县| 湖南省| 景德镇市| 宁波市| 新竹县| 武隆县| 巴彦淖尔市| 乐亭县| 高台县| 磐石市| 建瓯市| 囊谦县|