• <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 閱讀(1060) 評論(0)  編輯 收藏 引用 所屬分類: ACM

            国产精品久久久久…| 久久久久精品国产亚洲AV无码| 久久综合久久性久99毛片| 久久国产精品国语对白| 欧美激情精品久久久久久| 日本五月天婷久久网站| 99久久国语露脸精品国产| 欧美亚洲另类久久综合| 久久综合九色综合网站| 996久久国产精品线观看| 久久精品成人欧美大片| 久久香蕉超碰97国产精品| 国产精品成人精品久久久| 粉嫩小泬无遮挡久久久久久| 久久久久亚洲AV片无码下载蜜桃 | 欧美精品一区二区精品久久| 精品久久久久久国产免费了| 日本强好片久久久久久AAA| 亚洲国产高清精品线久久| 国产精品内射久久久久欢欢| 久久久亚洲欧洲日产国码二区| 久久天天躁狠狠躁夜夜2020| 人妻无码久久一区二区三区免费| 大美女久久久久久j久久| 97久久精品人妻人人搡人人玩| 伊人久久精品无码av一区 | 久久久久国产精品人妻| 久久久久国产精品麻豆AR影院 | 久久亚洲精精品中文字幕| 久久婷婷五月综合国产尤物app| 久久AAAA片一区二区| 久久九九全国免费| 欧美亚洲另类久久综合| 久久狠狠色狠狠色综合| 国内精品久久久久久久久| 久久国产精品国产自线拍免费| 久久久久无码精品国产| 久久精品欧美日韩精品| 国产91色综合久久免费分享| 久久精品国产亚洲AV无码娇色 | 久久国产免费直播|