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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

51nod 1134 最長遞增子序列 dp(經(jīng)典)

2019-11-11 03:30:16
字體:
供稿:網(wǎng)友
1134 最長遞增子序列基準(zhǔn)時間限制:1 秒 空間限制:131072 KB 分值: 0 難度:基礎(chǔ)題 收藏 關(guān)注給出長度為N的數(shù)組,找出這個數(shù)組的最長遞增子序列。(遞增子序列是指,子序列的元素是遞增的)例如:5 1 6 8 2 4 5 10,最長遞增子序列是1 2 4 5 10。Input
第1行:1個數(shù)N,N為序列的長度(2 <= N <= 50000)第2 - N + 1行:每行1個數(shù),對應(yīng)序列的元素(-10^9 <= S[i] <= 10^9)Output
輸出最長遞增子序列的長度。Input示例
8516824510Output示例

5

//超時代碼 #include<cstdio>#include<cstring>#include<iostream>using namespace std;int main(){	int a[50001],n,dp[50001],maxx=-999999999;	scanf("%d",&n);	for(int i=1;i<=n;i++){		scanf("%d",&a[i]);		dp[i]=1;		for(int j=1;j<i;j++)		if(a[j]<a[i])		dp[i]=max(dp[i],dp[j]+1);		maxx=max(maxx,dp[i]);	}	cout<<maxx<<endl;	return 0;}
//優(yōu)化后的代碼 #include<cstdio>#include<iostream>using namespace std;	int n,dp[50001]={0,1e+9},len=1,t,k;int find(int num){	int low=1,mid,high=len;	while(low<=high){		mid=(high+low)/2;		if(dp[mid]==num) return mid;		if(dp[mid]>num) high=mid-1;		else low=mid+1;	}	return low;}int main(){	scanf("%d",&n);	for(int i=1;i<=n;i++){		scanf("%d",&t);		k=find(t);		if(k<=len) dp[k]=t;		else dp[++len]=t;	}	PRintf("%d/n",len);	return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 手机| 乐都县| 理塘县| 高密市| 蚌埠市| 拉孜县| 堆龙德庆县| 磐石市| 延川县| 连云港市| 中西区| 巨野县| 牡丹江市| 香格里拉县| 宜宾市| 贵州省| 仙桃市| 息烽县| 东明县| 武功县| 肥城市| 南汇区| 中卫市| 松阳县| 盐边县| 临猗县| 仙游县| 缙云县| 漠河县| 承德县| 响水县| 陆丰市| 运城市| 全椒县| 库尔勒市| 独山县| 呼玛县| 灌云县| 桐柏县| 民勤县| 中宁县|