codevs1047 郵票面值設計

2022-05-20 06:28:26 字數 534 閱讀 7664

這個題乙個揹包dp,想的時候思維定勢,覺得乙個狀態轉移方程解決所有事。tan90,看來我還是太年輕。

這個題可以用乙個搜尋先列舉出所有的郵票面額,然後進行dp,最後取個最大值

注意陣列不能開太大,否則初始化會炸(tle)

#include#include

#include

using

namespace

std;

int n,k,a[45],ans[4500],b[45],pri;//

陣列不能開的太大,否則初始化就會boom

void

dp()

if(i-1>pri)//

取個最大值

}void dfs(int ceng)//

先爆搜面值

for(int i=a[ceng]+1;i<=a[ceng]*n+1;i++)//

列舉面值,a[i]*n+1是最大可能性

a[ceng+1]=i,dfs(ceng+1);}

intmain()

codevs 1047郵票面值設計

codevs 1047郵票面值設計 剛看這題的時候就感覺是搜尋,但是分類又是動態規劃,就往動態規劃那裡想,結果就以為是那種乙個遞推式就出來的乙個動態規劃,後來寫 交上去發現都是錯了,才感覺這裡面肯定不是那麼簡單,是暗藏玄機的,每種郵票的面值不知道該如何確定,我找這個規律找了很久也沒有頭緒,就去看了題...

郵票面值設計(codevs 1047) 題解

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

wikioi 1047 郵票面值設計

同樣感觸很深的一道題,之前打表,後來自己寫了一遍 具體就是用深搜找方案,用dp判斷 一道很經典的dfs套dp,但是程式很多地方還需優化 void dfs int num,int tk,int m 當前數值,種數,估計能構成的最大值 maxn cnt return for int i check m,...