• <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 閱讀(1148) 評論(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   回復  更多評論   

            国产精品久久久久久久人人看| 国内精品欧美久久精品| 亚洲人成无码www久久久| 久久亚洲国产成人影院网站| 久久精品免费网站网| 亚洲午夜无码AV毛片久久| 精品久久久久久中文字幕大豆网| 精品国产乱码久久久久久呢| AV狠狠色丁香婷婷综合久久| 国产精品久久久久久久久久免费| 午夜精品久久久久成人| 国内精品九九久久久精品| 精品国产乱码久久久久久浪潮| 18岁日韩内射颜射午夜久久成人| 久久狠狠色狠狠色综合| 国产色综合久久无码有码| 久久综合综合久久狠狠狠97色88| 亚洲精品无码久久久久AV麻豆| 久久精品国产精品国产精品污 | 久久伊人精品青青草原高清| 亚洲国产精品综合久久网络| 久久99毛片免费观看不卡| 婷婷综合久久中文字幕蜜桃三电影 | 久久夜色精品国产网站| 欧美精品丝袜久久久中文字幕 | 久久综合综合久久97色| 亚洲精品无码久久千人斩| 欧美久久天天综合香蕉伊| 久久精品国产清自在天天线| 久久综合久久综合九色| 国产精品久久久久久久久免费 | www.久久热| 久久一日本道色综合久久| 久久精品久久久久观看99水蜜桃 | 日韩精品久久久肉伦网站| 久久人妻AV中文字幕| 中文字幕久久亚洲一区| 亚洲精品成人久久久| 久久久午夜精品福利内容| 久久人妻无码中文字幕| 伊人久久大香线蕉综合Av|