• <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>

            The Fourth Dimension Space

            枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令

            UESTC D Divide DP

            這個動態規劃還要好好研究下,二分+dp,想法很不錯,而且這里有個trick,就是這個最大值可以是負數,一開始沒有注意到還我傻呆呆的Wa了N次。。。好了,不能再做題了,趕緊看系統結構吧。不然要杯具了。。。

            官方解題報告:
            首先二分答案ans,然后問題變為是否能夠將N個數分為不超過M堆,并且每堆的和都不超過ans。因為存在負數,所以貪心的做法是錯誤的。這可以用動態規劃求解,用dp[ i ]表示考慮前i個數,至少需要分dp[ i ]堆才能使每堆和不超過ans.

            dp[0] = 0

            dp[ i ] = min{ dp[ j ] + 1 }, j < i 且 sum(j + 1, i) <= ans.


            #include<iostream>
            #include
            <algorithm>
            using namespace std;
            #define INF 999999999
            int n,m;
            int a[1010];
            int dp[1010];
            int sum[1010];

            bool check(int mid)
            {
                
            int i,j;
                memset(dp,
            0,sizeof(dp));
                
            for(i=1;i<=n;i++)
                
            {
                    dp[i]
            =INF;
                    
            for(j=0;j<i;j++)
                    
            {
                        
            if(sum[i]-sum[j]<=mid)
                                dp[i]
            =min(dp[i],dp[j]+1);
                    }

                }

                
            if(dp[n]<=m)
                    
            return true;
                
            else
                    
            return false;
            }


            int main()
            {
                
            int t;

                
            int i,j;
                scanf(
            "%d",&t);
                
            while(t--)
                
            {
                    scanf(
            "%d%d",&n,&m);
                    
            for(i=1;i<=n;i++)
                    
            {
                        scanf(
            "%d",&a[i]);
                        sum[i]
            =sum[i-1]+a[i];
                    }

                    
            int l=-100000;
                    
            int r=100000;
                    
            int ans=-1;
                    
            while(l<=r)
                    
            {
                        
            int mid=(l+r)>>1;
                        
            if(check(mid))
                        
            {
                            r
            =mid-1;
                            ans
            =mid;
                        }

                        
            else
                        
            {

                            l
            =mid+1;
                        }

                    }

                    printf(
            "%d\n",ans);
                
                }

                
            return 0;


            }



            posted on 2010-05-02 19:55 abilitytao 閱讀(1146) 評論(1)  編輯 收藏 引用

            評論

            # re: UESTC D Divide DP[未登錄] 2010-05-05 09:08 yoyo

            Hi, man.
            The problems and solution or algorithms posted here are terrific, but in most time readers here are hard to see the description of problems.

            Would you provide the problem description or kind of info, before giving your ideas and algorithm code? Or a URL to introduce problems hosted by "UESTC"?

            Thanks in advance!

            yoyo   回復  更多評論   

            亚洲国产精品成人久久| 久久久久亚洲AV无码麻豆| 青青青青久久精品国产h| 日本福利片国产午夜久久| 久久人妻少妇嫩草AV蜜桃| 精品国产乱码久久久久软件 | 久久人人爽人人爽人人片AV高清 | 久久国产三级无码一区二区| 久久国产免费直播| 亚洲AV日韩精品久久久久久 | 日韩精品久久久久久| 久久人人爽人人爽人人片AV麻烦| 久久久久无码精品国产| 欧美性大战久久久久久| 久久国产色AV免费观看| 香蕉久久夜色精品国产尤物| 久久97精品久久久久久久不卡| 亚洲精品tv久久久久| 99久久精品国产一区二区蜜芽| 亚洲AV无码成人网站久久精品大| 日本精品久久久久影院日本| 久久99精品国产99久久6男男| 精品久久久中文字幕人妻| 亚洲国产小视频精品久久久三级| 99久久www免费人成精品| 国产成人无码精品久久久性色| 久久久久国产精品三级网| 88久久精品无码一区二区毛片 | 久久精品亚洲一区二区三区浴池 | 国内精品久久久久影院日本 | 久久夜色撩人精品国产小说| 久久99精品国产99久久6男男| 久久精品国产亚洲AV无码麻豆| 久久精品中文字幕一区| 久久久久亚洲av综合波多野结衣 | 性欧美丰满熟妇XXXX性久久久| 日本精品一区二区久久久| 久久亚洲欧洲国产综合| 亚洲国产精品综合久久网络 | 久久国产精品-国产精品| 精品久久久久久成人AV|