NOIP1999 郵票面值設計

2022-05-31 11:51:10 字數 812 閱讀 1720

給定乙個信封,最多隻允許貼上n張郵票,計算在給定k種郵票的情況下(假定所有的郵票數量都足夠),如何設計郵票的面值,能得到最大max,使得1-max之間的每乙個郵資值都能得到。

例如,n=3,k=2,如果面值分別為1分、4分,則在l分-6分之間的每乙個郵資值都能得到(當然還有8分、9分和12分):如果面值分別為1分、3分,則在1分-7分之間的每乙個郵資值都能得到。可以驗證當n=3,k=2時,7分就是可以得到連續的郵資最大值,所以max=7,面值分別為l分、3分。

[資料範圍]

100%的資料,n + k <= 10

輸入共一行。

第一行有兩個數m、k由空格隔開。含義如前述。

輸出共兩行。

第一行k個數由空格隔開,表示郵票設計方案,要求面值大小公升序輸出。

第二行輸出最大面值max。

通過這道題我對搜尋有了更新的認識——要不惜一切代價剪枝!

一開始的做法是隨便設定乙個搜尋範圍,只有40分,看了題解後才發現需要用動態規劃剪枝,強!

不惜一切代價剪枝!

1 #include2 #include

3using

namespace

std;45

int n,m,cord[11],ans[11],f[1000];6

7int getbig(int

deep)

19return

i; 20}

21}22}

2324

void dp(int

deep)30}

3132

intmain()

33

NOIP1999郵票面值設計

noip1999郵票面值設計 題目描述 description 給定乙個信封,最多隻允許貼上n張郵票,計算在給定k n k 40 種郵票的情況下 假定所有的郵票數量都足夠 如何設計郵票的面值,能得到最大值max,使在1 max之間的每乙個郵資值都能得到。例如,n 3,k 2,如果面值分別為1分 4分...

NOIP1999 郵票面值設計

時間限制 1 sec 記憶體限制 64 mb 提交 131 解決 63 提交 狀態 我的提交 給定乙個信封,最多隻允許貼上n張郵票,計算在給定k n k 40 種郵票的情況下 假定所有的郵票數量都足夠 如何設計郵票的面值,能得到最大值max,使在1 max之間的每乙個郵資值都能得到。第1行 2個整數...

郵票面值設計(NOIP1999)

傳送門 怎麼講呢?挺有意思的 是一道dp和搜尋的結合。我們把數字從小到大依次列舉。用dp去計算當前的所得最大值。f i 表示湊成i面值所需的最小郵票數量。那麼小於等於n的,都是可以湊出來的。那麼最大值也就好求了。至於dp的上界,用幾個數的和就能解決。如下 include include includ...