• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            jake1036

            動態規劃法-----最長增序子序列(非連續)

                       動態規劃法 求最長非連續增序子序列

                問題描述

              一個整形數組a[]= {1 ,7, 3, 5, 9, 4, 8},其中a0 ,a1為一個遞增子序列長度為2, a0 a2 a5 a6為一個遞增序列,其長度為4,且為最長的遞增子序列。

               解決方案

               設b[j]為以a[j]結束的最長遞增序列的長度,則b[j] = max(b[k]) ,其中1<=k<j ,且a[k] < a[j] 。 問題的答案為max(b[j]) 1<= j <= n 。

               解決方法類似求最大連續子序列和的問題。
              


              代碼如下

              
            /*
              定義s[i] 表示第i個位置處,以a[i]為結尾的最大遞增長度 
              先求每個位置處的最大長度,然后遍歷求最大長度即可 
              下面一步增加一個存儲結構,存儲究竟是哪幾個數組構成了遞增的最大長度的數組 
            */


            #include 
            <iostream>
             
            using namespace std ;
             
            const int N = 1010 ;
             
             
            int s[N] ;
             
            int a[N]  ; 
             
            int p[N]  ; //p[i] 表示 以a[i]結尾的最長子串的前一個節點的標號 
             int main()
             
            {
               
            int n , i , k;
               scanf(
            "%d" , &n) ;
               
            for(i = 0 ; i < n ;i++)
               
            {
                 scanf(
            "%d" ,&a[i]);
                 s[i] 
            = 1 ;
                 p[i] 
            = i ; //初始化每一個路徑   
               }

               
               
            for(i = 0 ; i < n ; i++)  
                
            {
                  
            for(k = 0 ; k < i ; k++)
                   
            {
                     
            if(a[i] > a[k])
                     
            {
                        
            int q = s[k] + 1 ;  
                        
            if(s[i] < q) 
                         
            {
                           s[i] 
            = q ;
                           p[i] 
            = k ;       
                         }

                     }
                         
                   }
                     
                }
             
               
               
            int max = 0 ;  
               
            for(i = 0 ; i < n ;i++)  
               
            {
                
                   
            if(s[max] < s[i])  
                      max 
            = i ;     
               }

                 printf(
            "%d\n" , s[max]) ;

             
               
            while(1)
               
            {
                printf(
            "%d->" , a[max]) ;      
                
            if(max == 0)
                 
            break ;
                max 
            = p[max] ;    
               }

               
                 system(
            "pause");
                
            return 0 ;   
             }
             

            posted on 2011-04-21 14:11 kahn 閱讀(1918) 評論(3)  編輯 收藏 引用

            Feedback

            # re: 動態規劃法-----最長增序子序列(非連續) 2011-08-10 17:14 wangyan

            讀師兄博客受益匪淺。。
            PS:我覺得if(max == 0)
            打印的時候應當改為if(max==P[max])
            不然的話,若增序列不是從第一個開始,比如100 1 2 3 4,就會死循環。  回復  更多評論   

            # re: 動態規劃法-----最長增序子序列(非連續) 2011-08-20 17:46 杜明

            @wangyan
            我的垃圾博客就怕誤人子弟,我都是很隨意的寫的。
            http://blog.csdn.net/v_JULY_v/
            這個網址是csdn上一個大牛寫的,非常好。各種算法還有分析。推薦你看看。  回復  更多評論   

            # re: 動態規劃法-----最長增序子序列(非連續) 2011-08-20 17:47 杜明

            我的垃圾博客就怕誤人子弟,我都是很隨意的寫的。
            http://blog.csdn.net/v_JULY_v/
            這個網址是csdn上一個大牛寫的,非常好。各種算法還有分析。推薦你看看。  回復  更多評論   


            国产精品视频久久久| 国产精品久久久久AV福利动漫| 久久午夜无码鲁丝片午夜精品| 青青草原综合久久大伊人导航 | 久久久久亚洲爆乳少妇无 | 国内精品伊人久久久影院| 少妇精品久久久一区二区三区| 久久精品一区二区| 久久人人爽人人爽人人片AV麻烦| 97久久超碰国产精品2021| 性欧美大战久久久久久久| 99久久精品日本一区二区免费| 欧美粉嫩小泬久久久久久久| 国产精品久久久久国产A级| 一级A毛片免费观看久久精品| 久久久久无码精品国产不卡| 久久综合色之久久综合| 久久精品人人做人人爽电影| 亚洲AV日韩AV永久无码久久| 久久中文字幕人妻熟av女| 久久黄视频| 国产精品美女久久久久av爽| 久久狠狠色狠狠色综合| 亚洲综合伊人久久大杳蕉| 久久亚洲精品无码观看不卡| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品久久久久jk制服| A级毛片无码久久精品免费| 亚洲精品97久久中文字幕无码| 国内精品久久久久久不卡影院| 亚洲国产精品久久久久久| 久久久无码精品亚洲日韩按摩| 久久九九兔免费精品6| 久久精品国产AV一区二区三区 | 国产精品天天影视久久综合网| 久久人人妻人人爽人人爽| 亚洲伊人久久精品影院| 久久精品国产亚洲AV大全| 超级97碰碰碰碰久久久久最新| 色综合久久天天综线观看| 久久婷婷是五月综合色狠狠|