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

            久久精品亚洲男人的天堂| 一本色道久久88综合日韩精品| 国产美女久久精品香蕉69| 久久久久99精品成人片欧美 | 国产亚洲精久久久久久无码| 久久国产精品无码一区二区三区 | 久久亚洲精品视频| 久久久久这里只有精品| 久久影院综合精品| 伊人色综合久久天天人守人婷| 久久久久无码精品国产不卡| 久久精品国产第一区二区| 97久久综合精品久久久综合| 免费一级欧美大片久久网| 久久久久亚洲精品无码蜜桃| 久久久久久无码国产精品中文字幕 | 久久伊人五月丁香狠狠色| 日韩亚洲欧美久久久www综合网| 久久精品国产男包| 综合久久久久久中文字幕亚洲国产国产综合一区首| 无码国产69精品久久久久网站| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产毛片久久久久久国产毛片| 99精品久久精品一区二区| 久久久久人妻精品一区三寸蜜桃| 国产精品久久99| 久久九九亚洲精品| 嫩草影院久久99| 久久er国产精品免费观看2| 久久国产高潮流白浆免费观看| 亚洲国产精品久久久天堂| 99久久精品免费看国产一区二区三区| 久久久久黑人强伦姧人妻| 青青久久精品国产免费看| 久久嫩草影院免费看夜色| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久久这里只有精品加勒比| 久久er国产精品免费观看8| 99久久久久| 99久久亚洲综合精品网站| 久久精品国产亚洲欧美|