這個題乙個揹包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,...