国产探花免费观看_亚洲丰满少妇自慰呻吟_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完成下拉框

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临漳县| 定西市| 屏南县| 米易县| 嵩明县| 越西县| 黎川县| 克山县| 盘锦市| 孝昌县| 高安市| 宜昌市| 永吉县| 阿巴嘎旗| 江陵县| 蓝山县| 通渭县| 炎陵县| 剑阁县| 章丘市| 神池县| 林周县| 邵阳县| 黄梅县| 乐亭县| 北碚区| 密云县| 江西省| 长泰县| 桂林市| 鄂温| 四平市| 鄂托克旗| 镇赉县| 土默特右旗| 泽普县| 瑞昌市| 渑池县| 常宁市| 苏尼特左旗| 三台县|