• <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>
            posts - 195,  comments - 30,  trackbacks - 0
            [原創]POJ1050 To the Max 解題報告
            2006-04-17 11:55
            題目大意:

            讀入一個n*n的數組,比如 

            0 -2 -7 0 

            9 2 -6 2 

            -4 1 -4 1 

            -1 8 0 -2  

            從里面任意截取一個矩陣,使得矩陣所包含的數字的和最大.

            截取出來的矩陣,和為15

            9 2 

            -4 1 

            -1 8 

            ---------------------------------------------------------

            POJ 1050 我的解題報告:

            這個題目很經典的說,O(N^3)的DP。

            首先偶們考察這樣的題目,簡化版:

            已知一列數,求任意連續若干個數和的最大值。

            SAMPLE: 3 2 -6 2 -1 7

            原數3        2      -6       2      -1       7 

            處理3        5      -1       2       1       8

            因為是連續若干個自然數的和,那么,前面的某個數字取與不取的條件在于:以前面這個數字為結尾的連續數的和最大值是否大于0,如果大于0,那么這個數字必然要會出現在包括數字的序列中,否則無法做到最大。

            所以,顯然。處理的原則是maxn[i]=max{0,maxn[i-1]}+a[i];

            由于無須記錄位置。所以,可以直接用一個變量sum代替maxn數組。O(n)的掃描即可。

            單列數字的問題解決了,下面我們考察多列數字的

            sample:

                     0    -2    -7    0 

                     9     2    -6    2 

                    -4     1    -4    1 

                    -1     8     0   -2 



            我們可以將多列數字轉換成單列數字來做! 可以這樣設想,結果是一個長方形,我們把他壓扁,使得寬為1。

            引入輔助數組st,st[i][j]代表第i列從第1行開始的數字累加到第j行的值。那么,我們每次壓扁的時候,就可以用st[i][j]-st[i][k-1]來表示第i列從第k個數字累加到第j個數字的值。達到壓縮的效果。然后用上面單列數字的方法來做。算法時間復雜度O (N^3)

            Source



            Problem Id:1050  User Id:galaxy 

            Memory:112K  Time:0MS

            Language:G++  Result:Accepted



            /*

              Name:POJ 1050 

              Copyright: flymouse@galaxy                                         

              Author:chenlei

              Date: 15-02-06 07:36

              Description: DP O(N^3)

            */

            #include <stdio.h>

            #include <string.h>

            #define mt 101

            int main()

            {

            int a[mt][mt];

            int st[mt][mt];

            int p,k,n,i,j,sum,maxn;

            //freopen("in.txt","r",stdin);

            scanf("%d",&n);

            for (i=1;i<=n;i++)

            for (j=1;j<=n;j++)

            scanf("%d",&a[i][j]);

            memset(st,0,sizeof(st));

            for (i=1;i<=n;i++)

               for (j=1;j<=n;j++)

              st[i][j]=st[i][j-1]+a[j][i];

              maxn=0;

               for (i=1;i<=n;i++)

               {

            for (j=i;j<=n;j++)

            {

            p=st[1][j]-st[1][i-1];

            sum=p;

            for (k=2;k<=n;k++)

            {

            if (sum>0)

            sum+=st[k][j]-st[k][i-1];

            else sum=st[k][j]-st[k][i-1];

            if (sum>p) p=sum;

            }

            if (p>maxn) maxn=p;

            }

               }

               printf("%d\n",maxn);

               return 0;
            原文地址:http://hi.baidu.com/flymouse/blog/item/fd1378f05c7ff7c37931aac3.html
            posted on 2009-07-09 18:37 luis 閱讀(330) 評論(0)  編輯 收藏 引用 所屬分類: 動態規劃轉載
            <2009年7月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            友情鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲精品tv久久久久| 亚洲欧美日韩精品久久亚洲区 | 亚洲嫩草影院久久精品| 久久久国产亚洲精品| 国产精品久久影院| 国产精品成人精品久久久| 武侠古典久久婷婷狼人伊人| 久久久久久久精品成人热色戒| 久久久久久亚洲Av无码精品专口| 亚洲综合久久综合激情久久| 久久亚洲国产成人影院| 日韩精品国产自在久久现线拍| 久久久久99这里有精品10| 91精品国产色综久久| 色狠狠久久AV五月综合| 久久久久亚洲精品无码网址| 99精品久久精品一区二区| 一本色道久久88综合日韩精品 | 久久精品无码专区免费东京热| 久久se精品一区精品二区国产| 熟妇人妻久久中文字幕| 亚洲精品乱码久久久久久蜜桃| 一本一道久久精品综合| 久久精品99久久香蕉国产色戒| 久久久久久久久久久精品尤物| 久久精品亚洲欧美日韩久久| 青青青国产成人久久111网站| 久久精品亚洲日本波多野结衣| 99精品国产99久久久久久97| 久久久久av无码免费网| 77777亚洲午夜久久多喷| 亚洲国产天堂久久综合| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 99久久精品国产高清一区二区 | 日本久久久精品中文字幕| 国产精品美女久久久| 国产精品女同久久久久电影院 | 狠狠久久亚洲欧美专区| 丰满少妇高潮惨叫久久久| 久久精品九九亚洲精品| 国产精品久久久久影院色|