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

            99久久99久久精品免费看蜜桃| 久久精品一区二区影院 | 久久福利青草精品资源站免费| 久久99精品国产麻豆蜜芽| 久久久久人妻一区精品| 日本WV一本一道久久香蕉| 久久久久高潮毛片免费全部播放| 国产三级久久久精品麻豆三级 | 亚洲国产欧洲综合997久久| av国内精品久久久久影院| 久久久久久国产精品免费免费| 亚洲狠狠婷婷综合久久久久| 国产午夜电影久久| 色综合合久久天天给综看| 色综合合久久天天综合绕视看| 色妞色综合久久夜夜| 国产精品gz久久久| 国产一级做a爰片久久毛片| 偷偷做久久久久网站| 久久99精品久久久久久噜噜| 9久久9久久精品| 性做久久久久久久| 久久久高清免费视频| 亚洲国产小视频精品久久久三级 | 一本一道久久综合狠狠老 | 国产一区二区精品久久岳| 国产亚洲精品美女久久久| 日本五月天婷久久网站| 久久久亚洲精品蜜桃臀| 狠狠色伊人久久精品综合网 | 久久亚洲欧美日本精品| 久久亚洲精品国产精品| 日日躁夜夜躁狠狠久久AV| 国产精品久久久久免费a∨| 综合久久精品色| 狠狠色丁香久久婷婷综合| 麻豆精品久久久久久久99蜜桃| 国产精品久久久久久久久久影院| 麻豆精品久久久久久久99蜜桃| 综合网日日天干夜夜久久| 亚洲AV日韩精品久久久久久|