• <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 閱讀(1150) 評論(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久久久久久免费看| 91精品国产综合久久婷婷| 99麻豆久久久国产精品免费| 精品一区二区久久| 久久亚洲国产欧洲精品一| 91久久精品国产91性色也| 欧美午夜精品久久久久免费视| 国产呻吟久久久久久久92| 97精品伊人久久大香线蕉app| 国产精品久久久久久福利69堂| 天天爽天天爽天天片a久久网| 免费国产99久久久香蕉| 国产—久久香蕉国产线看观看| 久久国产成人精品国产成人亚洲| 久久精品国产99久久丝袜| 亚洲欧美日韩精品久久亚洲区| 亚洲色大成网站WWW久久九九| jizzjizz国产精品久久| 欧美久久精品一级c片片| 久久精品无码免费不卡| 亚洲日本va中文字幕久久| 久久99国产精品久久99果冻传媒| 成人亚洲欧美久久久久| 久久99热这里只频精品6| 久久99精品久久久久婷婷| 久久青青草原亚洲av无码| 久久久久久毛片免费播放| 99久久国产综合精品成人影院 | 性欧美大战久久久久久久久| www久久久天天com| 国内精品伊人久久久影院| 国产精品久久久久影院嫩草| 国产99久久久国产精品小说| 久久亚洲高清观看| 一本色道久久88精品综合 | 国产亚洲色婷婷久久99精品|