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

            久久国产热精品波多野结衣AV| 午夜不卡888久久| 午夜精品久久久久久| 一本久久免费视频| 色综合久久中文字幕无码 | 久久久久久亚洲精品成人| 国内精品伊人久久久久| 久久久国产精品| 国产精品一久久香蕉国产线看观看 | 久久久中文字幕| 久久久久久久免费视频| 99久久免费国产特黄| 亚洲欧洲中文日韩久久AV乱码| 国产综合久久久久久鬼色| 久久强奷乱码老熟女网站| 久久精品国产99久久无毒不卡| 人妻无码久久精品| 一本久久a久久精品综合夜夜| 99久久无色码中文字幕人妻| 久久毛片免费看一区二区三区| 久久99国产乱子伦精品免费| 成人综合久久精品色婷婷| 99久久国产免费福利| 久久综合久久综合亚洲| 久久被窝电影亚洲爽爽爽| 色综合久久无码中文字幕| 亚洲国产精品综合久久网络| 国产精品久久久久久久午夜片| 久久99国产综合精品免费| 日韩久久久久久中文人妻| 国内精品久久久久影院网站| 久久午夜羞羞影院免费观看| 超级碰碰碰碰97久久久久| 久久免费视频1| 性高湖久久久久久久久AAAAA| 久久中文字幕视频、最近更新 | 久久免费看黄a级毛片| 久久这里只精品99re66| 囯产精品久久久久久久久蜜桃 | 青青青国产精品国产精品久久久久| 亚洲va久久久噜噜噜久久狠狠 |