• <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>
            ccyy's coding zone
            往前走,不要留戀路邊的風景.
            posts - 25,comments - 9,trackbacks - 0
            Problem:http://acm.uestc.edu.cn/ShowProblem.aspx?ProblemID=1214&ContestID=126

            Description:
            給你一個長度為n的數列,有正有負,劃分為不大于m斷...使各段的和的最大值最小..

            Method:
            二分+DP判斷可行性
            剛開始的時候以為感覺這道題和poj1505很像....按1505的思路敲了..但是是不對的...因為有負數的情況...后來又用了一個貪心的方法來判斷可行性...還是wa...發(fā)現(xiàn)貪心的方法是錯的...后來用dp判斷可行性才過了...

            CODE:
            C++語言: Uestc 1214
            #include <stdio.h>
            int n, m;
            int arr[1010];
            int dp[1010];
            bool check(int x)
            {
                int sum = 0;
                for(int i = 1; i <= n; i++)
                    dp[i] = m + 1;
                dp[0] = 0;
                for(int i = 1; i <= n; i++)
                {
                    sum = 0;
                    for(int j = i; j > 0; j--)
                    {
                        sum += arr[j];
                        if(sum <= x && dp[i] > dp[j - 1] + 1)
                            dp[i] = dp[j - 1] + 1;
                    }
                }
                return dp[n] <= m;
            }
            int main()
            {
                int cs;
                scanf("%d", &cs);
                while(cs--)
                {
                    scanf("%d %d", &n, &m);
                    for(int i = 1; i <= n; i++)
                        scanf("%d", &arr[i]);
                    if(n == 1)
                    {
                        printf("%d\n", arr[1]);
                        continue;
                    }
                    int low = -100000, high = 100000, ans = -1;
                    int mark = 1;
                    while(low <= high)
                    {
                        int mid = (low + high) / 2;
                        if(check(mid))
                        {
                            ans = mid;
                            high = mid - 1;
                        }
                        else low = mid + 1;
                    }
                    printf("%d\n", ans);
                }
            }
            閱讀全文
            類別:默認分類 查看評論
            文章來源:http://hi.baidu.com/%D2%EC%B6%C8%BF%D5%BC%E4%5F%B5%DA%CB%C4%CE%AC/blog/item/08f3d69beb87da046f068c09.html
            posted on 2010-05-04 22:00 ccyy 閱讀(100) 評論(0)  編輯 收藏 引用
            久久久精品免费国产四虎| 久久精品国产99久久无毒不卡 | 久久午夜电影网| 亚洲一本综合久久| 香蕉99久久国产综合精品宅男自 | 亚洲国产欧美国产综合久久 | 久久精品一区二区三区AV| 亚洲午夜久久久久久久久久| 久久中文娱乐网| 国产色综合久久无码有码| 伊人丁香狠狠色综合久久| 久久久久99精品成人片牛牛影视| 久久婷婷午色综合夜啪| 91性高湖久久久久| 久久久久久久久久久久中文字幕| 精品国产一区二区三区久久蜜臀| 人妻精品久久久久中文字幕一冢本| 久久国产精品久久国产精品| 亚洲国产成人精品女人久久久 | 免费久久人人爽人人爽av| 久久婷婷国产麻豆91天堂| 精品国产乱码久久久久久人妻| 99久久精品无码一区二区毛片| 久久精品国产亚洲αv忘忧草 | 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 亚洲人成网站999久久久综合| 精品九九久久国内精品| 久久久久久久久波多野高潮| 久久乐国产精品亚洲综合| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 麻豆久久久9性大片| 久久精品亚洲精品国产欧美| 久久国产一区二区| 99久久精品国产麻豆| 日韩精品久久无码中文字幕| 欧美喷潮久久久XXXXx| 色青青草原桃花久久综合| 热RE99久久精品国产66热| 久久国产一片免费观看| 激情久久久久久久久久| 深夜久久AAAAA级毛片免费看|