• <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   回復  更多評論   

            日日噜噜夜夜狠狠久久丁香五月| 国产精品久久久亚洲| 99久久精品毛片免费播放| 狠狠色丁香久久婷婷综合图片| 国产精品成人久久久久三级午夜电影| 97久久久久人妻精品专区| 日本久久久久亚洲中字幕| 漂亮人妻被黑人久久精品| 久久久精品人妻一区二区三区四 | 亚洲欧美成人综合久久久| 午夜精品久久久久| 久久人人爽人人爽人人片AV麻烦| 亚洲综合久久夜AV | 久久频这里精品99香蕉久| 久久99热这里只有精品国产| 性做久久久久久久| 青青草国产精品久久久久| 国产ww久久久久久久久久| 久久露脸国产精品| 国内精品久久久久影院薰衣草| 久久婷婷成人综合色综合| Xx性欧美肥妇精品久久久久久| 日韩久久无码免费毛片软件| 无码人妻精品一区二区三区久久久 | 久久久久亚洲av无码专区| 久久久精品午夜免费不卡| 久久影院久久香蕉国产线看观看| 免费久久人人爽人人爽av| 国产精品久久久久久搜索| 日韩AV毛片精品久久久| 精品人妻久久久久久888| 欧美成a人片免费看久久| 久久久一本精品99久久精品66| 国内精品久久久久久久久电影网| 色妞色综合久久夜夜| 中文字幕成人精品久久不卡| 久久亚洲中文字幕精品一区| 国産精品久久久久久久| 久久国产色AV免费看| 久久人人爽人人爽人人片AV高清| 日韩欧美亚洲综合久久影院d3|