[Topcoder] SRM474

來源:互聯網
上載者:User

Div. 2 Lev. 3

主要思想:DP

由於題目中點的數量不超過16個,因此可以用一個整數來表示,第i位為1表示考慮第i個點。如101表示考慮第1,3個點。

由於給出的二維點沒說有序,所以分解問題時得考慮其所有的子集。

 

定義opt[2^n],n為二維點個數。

opt[i] 為考慮i所代表的這些二維點的最優結果。

則最優子結構:

opt=minj{opt[i-j] + res[j]}

其中res[j]為將j所代表的這些二維點用一個框框起來的成本。初值opt[0] = 0,其它為-1。

 

提示:

opt定義:opt[1<<n];

 

for (int i = 0; i < 1<<n; i++)    // 第i種二維點組合

    for (int j = 0; j < n; j++)      // 第j個點

        if ((i >> j) & 1)                 // 當前組合中包含第j個點

            // 算res

 

最優子結構(遍曆i所代表所有點的子集):

for (int i = 0; i < 1<<n; i++)

    for (int j = i; j > 0; j= (j - 1) & i)

       

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.