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

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

POJ 2533-Longest Ordered Subsequence(裸LIS)

2019-11-14 09:54:55
字體:
來源:轉載
供稿:網友

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;}
上一篇:2017/02/04

下一篇:css+html完成下拉框

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹山县| 轮台县| 颍上县| 汉阴县| 富民县| 元朗区| 桃江县| 云梦县| 丰城市| 社会| 定安县| 丰镇市| 读书| 同德县| 罗平县| 灵川县| 漳浦县| 南投县| 通化县| 麻城市| 汾西县| 信丰县| 嘉黎县| 如东县| 桑植县| 茂名市| 越西县| 屯门区| 玉龙| 富源县| 泰宁县| 鄂温| 蒲城县| 乐业县| 双牌县| 平罗县| 栾城县| 崇阳县| 永川市| 宜宾县| 乌什县|