• <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>

            coreBugZJ

            此 blog 已棄。

            HDOJ 3480 Division

            Division

            Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 999999/400000 K (Java/Others)
            Total Submission(s): 961    Accepted Submission(s): 310


            Problem Description
            Little D is really interested in the theorem of sets recently. There’s a problem that confused him a long time.  
            Let T be a set of integers. Let the MIN be the minimum integer in T and MAX be the maximum, then the cost of set T if defined as (MAX – MIN)^2. Now given an integer set S, we want to find out M subsets S1, S2, …, SM of S, such that



            and the total cost of each subset is minimal.
             

            Input
            The input contains multiple test cases.
            In the first line of the input there’s an integer T which is the number of test cases. Then the description of T test cases will be given.
            For any test case, the first line contains two integers N (≤ 10,000) and M (≤ 5,000). N is the number of elements in S (may be duplicated). M is the number of subsets that we want to get. In the next line, there will be N integers giving set S.

             

            Output
            For each test case, output one line containing exactly one integer, the minimal total cost. Take a look at the sample output for format.

             

            Sample Input
            2 3 2 1 2 4 4 2 4 7 10 1
             

            Sample Output
            Case 1: 1 Case 2: 18
            Hint
            The answer will fit into a 32-bit signed integer.
             

            Source
             


            四邊形不等式優化,我掌握的確實不怎么樣。。。


            #include <iostream>
            #include 
            <cstdio>
            #include 
            <algorithm>

            using namespace std;

            #define  N   10009
            #define  INF 0x3fffffff

            int n, m, a[ N ];

            int solve() {
                    
            static int f[ 2 ][ N ], s[ 2 ][ N ];
                    
            int i, j, k, cur, pre, tmp;

                    cur 
            = 0;
                    
            for ( i = 1; i <= n; ++i ) {
                            f[ cur ][ i ] 
            = (a[i]-a[1])*(a[i]-a[1]);
                            s[ cur ][ i ] 
            = 1;
                    }

                    
            for ( j = 2; j <= m; ++j ) {
                            pre 
            = cur;
                            cur 
            ^= 1;
                            s[ cur ][ n 
            + 1 ] = n - 1;
                            
            for ( i = n; i >= j; --i ) {
                                    f[ cur ][ i ] 
            = INF;
                                    
            for ( k = s[ pre ][ i ]; k <= s[ cur ][ i + 1 ]; ++k ) {
                                            tmp 
            = f[ pre ][ k ] + (a[i]-a[k+1])*(a[i]-a[k+1]);
                                            
            if ( tmp < f[ cur ][ i ] ) {
                                                    f[ cur ][ i ] 
            = tmp;
                                                    s[ cur ][ i ] 
            = k;
                                            }

                                    }

                            }

                    }

                    
            return f[ cur ][ n ];
            }


            int main() {
                    
            int tc, cc, i;
                    scanf( 
            "%d"&tc );
                    
            for ( cc = 1; cc <= tc; ++cc ) {
                            scanf( 
            "%d%d"&n, &m );
                            
            for ( i = 1; i <= n; ++i ) {
                                    scanf( 
            "%d", a + i );
                            }

                            sort( a 
            + 1, a + n + 1 );
                            printf( 
            "Case %d: %d\n", cc, solve() );
                    }

                    
            return 0;
            }

            posted on 2011-03-18 09:38 coreBugZJ 閱讀(1072) 評論(0)  編輯 收藏 引用 所屬分類: ACM

            久久久久99精品成人片| 久久夜色精品国产欧美乱| 精品久久人人做人人爽综合| 久久国产高清一区二区三区| 97精品伊人久久大香线蕉| 久久精品麻豆日日躁夜夜躁| 精品久久久久国产免费| 麻豆成人久久精品二区三区免费| 国产精品久久久久久久久久免费| 伊人久久大香线蕉综合影院首页| 久久最新精品国产| 久久久久亚洲精品天堂| 久久频这里精品99香蕉久| 曰曰摸天天摸人人看久久久| 波多野结衣AV无码久久一区| 久久伊人五月天论坛| 青青热久久综合网伊人| 久久精品亚洲精品国产色婷| 色婷婷综合久久久久中文字幕| 久久精品国产亚洲网站| 欧美一区二区三区久久综合| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久精品国产男包| 久久精品国产精品亚洲人人| 久久久久久久尹人综合网亚洲 | 久久精品中文字幕久久| 欧美噜噜久久久XXX| 亚洲国产另类久久久精品黑人 | 久久天天躁夜夜躁狠狠| 色欲综合久久躁天天躁| 久久AⅤ人妻少妇嫩草影院| 香蕉久久一区二区不卡无毒影院| 国产精品99久久免费观看| 亚洲精品无码专区久久久 | 欧美精品乱码99久久蜜桃| 午夜精品久久久久久久无码| 久久一区二区免费播放| 久久亚洲AV成人无码软件| 国产精品中文久久久久久久| 色狠狠久久综合网| 日韩乱码人妻无码中文字幕久久|