麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

夕拾算法進(jìn)階篇:14)最長上升子序列(動態(tài)規(guī)劃DP)

2019-11-11 06:45:45
字體:
供稿:網(wǎng)友

題目描述一個數(shù)列ai如果滿足條件a1 < a2 < ... < aN,那么它是一個有序的上升數(shù)列。我們?nèi)?shù)列(a1, a2, ..., aN)的任一子序列(ai1, ai2, ..., aiK)使得1 <= i1 < i2 < ... < iK <= N。例如,數(shù)列(1, 7, 3, 5, 9, 4, 8)的有序上升子序列,像(1, 7), (3, 4, 8)和許多其他的子序列。在所有的子序列中,最長的上升子序列的長度是4,如(1, 3, 5, 8)。現(xiàn)在你要寫一個程序,從給出的數(shù)列中找到它的最長上升子序列。

輸入輸入包含兩行,第一行只有一個整數(shù)N(1 <= N <= 1000),表示數(shù)列的長度。第二行有N個自然數(shù)ai,0 <= ai <= 10000,兩個數(shù)之間用空格隔開。輸出輸出只有一行,包含一個整數(shù),表示最長上升子序列的長度。樣例輸入71 7 3 5 9 4 8樣例輸出4

這個題目和最大連續(xù)子序列類似,例如有序列A={1,2,3,-1,-2,7,9} (下標(biāo)從0開始),它的最長不下降子序列是{1,2,3,7,9},長度為5。和之前的分析一樣:

令dp[i]表示以A[i]結(jié)尾的最長不下降序列長度 ,從而會有2中情況:

(1)若在A[i]之前存在一個元素A[j](j<i),使得A[i]>=A[j]并且dp[j]+1>dp[i],則可以更新dp[i]=d[j]+1,獲得更長的序列

(2)若在A[i]之前的元素都比A[i]小,A[i]則注定單身一輩子,其序列長度為1

上面的過程可以用下面的小游戲說明,現(xiàn)有一個序列{1,5,2,3},假設(shè)我們已經(jīng)求出以A[0],A[1],A[2]結(jié)尾的最長不減序列為{1}、{1,5},{1,2},現(xiàn)在A[3]=3來了:

A[3]:A[0]我可以站在你后面嗎?    A[0]:你比我高當(dāng)然可以!

A[3]:A[1]我可以站在你后面嗎?    A[1]:小矮子一邊涼快去!

A[3]:A[2]我可以站在你后面嗎?    A[2]:當(dāng)然可以,我們可以形成更長的遞增序列!

很明顯,在求dp[i]的時候,其會依次和A[j](j<i)比較,只有A[i]較大且d[j]+1>dp[i]才會更新dp[i]的值。因此可以得到如下的狀態(tài)轉(zhuǎn)移方程:

                      dp[i]=max(1,dp[j]+1)       (j=1,2,3..,i-1 && A[j]<A[i])

根據(jù)上面的分析,可以給出下面的代碼:

#include<cstdio>#include<algorithm>using namespace std; const int M=1002; int main(){	int n,i,j,a[M],dp[M],ans=1;	scanf("%d",&n);	for(i=0;i<n;i++){		scanf("%d",a+i);		dp[i]=1;	}	for(i=0;i<n;i++){		for(j=0;j<i;j++){			if(a[i]>=a[j]&&dp[i]<dp[j]+1){				dp[i]=dp[j]+1;			}		}		ans=max(ans,dp[i]);	}	PRintf("%d/n",ans);}題目來源:http://www.codeup.cn/problem.php?cid=100000627&pid=0


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 色av综合在线 | 天海翼无删减av三级在线观看 | 精品久久久久久久 | 黄色大片在线观看 | 国产一区精品在线观看 | 成人国产在线视频 | 精品国产乱码久久久久久丨区2区 | 日韩黄在线观看 | 日本a在线观看 | 国产乱淫a∨片免费观看 | 中文字幕亚洲欧美 | 国产精选电影免费在线观看 | 羞羞色网站 | 国产午夜精品一区二区三区免费 | 成人在线观看免费观看 | 精品三级内地国产在线观看 | 欧美日韩精品一区二区三区蜜桃 | 日本欧美一区二区三区在线观看 | 国产永久免费观看 | 久久9久久 | 色视频在线播放 | a免费视频| 91精品国产日韩91久久久久久360 | 精品久久久久久成人av | 欧产日产国产精品乱噜噜 | 免费国产成人高清在线看软件 | 久久99在线 | 久久艹精品 | 一级电影免费看 | 国产成人免费高清激情视频 | 日韩美女电影 | 欧洲狠狠鲁 | 99麻豆久久久国产精品免费 | 九九精品影院 | 国产亚洲精品久久久久久久软件 | 久久免费视频在线 | 亚洲成人欧美在线 | 一本一本久久a久久精品综合小说 | 亚洲视频在线一区二区 | 精品国产一区二区三区四 | 色就色 综合偷拍区91网 |