6usingnamespacestd;78intmain(inti,intj)9{" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

POJ2533-Longest Ordered Subsequence

系統(tǒng) 1765 0

轉(zhuǎn)載請(qǐng)注明出處:優(yōu) YoU http://user.qzone.qq.com/289065406/blog/1300023619

?

提示:

動(dòng)態(tài)規(guī)劃,求 LIS 最大不下降子序列

?

O(n^2) O(n*logn) 算法都能完美 AC

?

不懂的就去看看 LIS 的概念就會(huì)做了

我把兩種算法都貼出來:

?

      
         1
      
      
        //
      
      
        Memory Time 
        
2 // 228K 16MS
3
4 // O(n^2)算法
5 #include < iostream >
6 using namespace std;
7
8 int main( int i, int j)
9 {
10 int n;
11 while (cin >> n)
12 {
13 int * sq = new int [n];
14 int * dp = new int [n]; // dp[i]表示以第i個(gè)位置為終點(diǎn)的最長(zhǎng)不下降序列的長(zhǎng)度
15
16 for (i = 0 ;i < n;i ++ )
17 cin >> sq[i];
18
19 int max_length = 0 ;
20 for (i = 0 ;i < n;i ++ )
21 {
22 dp[i] = 1 ; // 初始化dp[0]=1,其他最小值為1
23 for (j = 0 ;j < i;j ++ )
24 if (sq[j] < sq[i] && dp[i] < dp[j] + 1 )
25 dp[i] = dp[j] + 1 ;
26
27 if (max_length < dp[i])
28 max_length = dp[i];
29 }
30 cout << max_length << endl;
31
32 delete sq,dp;
33 }
34 return 0 ;
35 }

===========華麗的分割線=============

      
         1
      
      
        //
      
      
        Memory Time 
        
2 // 224K 0MS
3
4 // O(n*logn)算法
5 #include < iostream >
6 using namespace std;
7 const int inf = 10001 ;
8
9 int binary_search( int ord[], int digit, int length) // 二分法搜索digit,若str中存在digit,返回其下標(biāo)
10 { // 若不存在,返回str中比digit小的最大那個(gè)數(shù)的(下標(biāo)+1)
11 int left = 0 ,right = length;
12 int mid;
13 while (right != left)
14 {
15 mid = (left + right) / 2 ;
16 if (digit == ord[mid])
17 return mid;
18 else if (digit < ord[mid])
19 right = mid;
20 else
21 left = mid + 1 ;
22 }
23 return left;
24 }
25
26 int main( int i, int j)
27 {
28 int n;
29 while (cin >> n)
30 {
31 int * sq = new int [n + 1 ];
32 int * ord = new int [n + 1 ]; // 對(duì)于dp[]的每一個(gè)取值k,ord[k]記錄滿足dp[i]=k的所有sq[i]中的最小值,即ord[k]=min{sq[i]} (dp[i]=k)
33
34 for (i = 1 ;i <= n;i ++ )
35 cin >> sq[i];
36
37 int max_length = 0 ;
38 ord[ 0 ] =- 1 ; // 下界無窮小
39 int len = 1 ; // ord的長(zhǎng)度
40 for (i = 1 ;i <= n;i ++ )
41 {
42 ord[len] = inf; // 上界無窮大,指針len總是指向ord最后一個(gè)元素的后一位
43 j = binary_search(ord,sq[i],len);
44 if (j == len) // sq[i]大于ord最大(最后)的元素
45 len ++ ;
46 ord[j] = sq[i];
47 }
48 cout << len - 1 << endl; // len要減去ord[0]的長(zhǎng)度1
49
50 delete sq,ord;
51 }
52 return 0 ;
53 }

POJ2533-Longest Ordered Subsequence


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲小色网 | 色多多h | 色综合天天综合给合国产 | 在线观看日本免费视频大片一区 | a毛片基地 | 在线免费观看视频a | 老潮湿影院免费体验区 | 国产人成精品综合欧美成人 | 国产91精品久久久久999 | 在线观看亚洲 | 国产精品伦一区二区三级视频 | 国产产一区二区三区久久毛片国语 | 亚洲欧美在线精品一区二区 | 久久一 | 四虎国产精品永久在线看 | 狠狠色噜噜狠狠狠合久 | 久久这里只精品国产99热 | 成人私人影院在线观看网址 | 天天干天天射天天舔 | 五月婷婷激情四射 | 奇米影视在线视频8888 | 久久精品国产只有精品2020 | 97在线观看免费观看高清 | 欧美日本另类xxx乱大交 | 91亚洲精品福利在线播放 | 国产成人在线小视频 | 精品久久久久久中文字幕专区 | 精品成人毛片一区二区视 | 欧美大片aaaa一级毛片 | 日韩精品一区二区三区国语自制 | 狠狠色噜噜狠狠狠狠米奇777 | 天天曰夜夜曰 | 亚洲精品乱码久久久久久中文字幕 | 天天做.天天爱.天天综合网 | 亚洲最大综合网 | 国产色网址 | 一区二区三区在线免费观看视频 | 99高清免费国产自产拍 | 黑丝毛片 | 亚洲一区二区三区久久 | 四虎成人影视 |