同樣感觸很深的一道題,之前打表,後來自己寫了一遍
具體就是用深搜找方案,用dp判斷
一道很經典的dfs套dp,但是程式很多地方還需優化
void dfs(int num,int tk,int m)//當前數值,種數,估計能構成的最大值
maxn=cnt;
}return ;
}for(int i=check(m,tk)+1;i>=num+1;i--)//i=check(m,tk)+1下一張郵票的最大值等於當前構成最大值+1(這裡會重複計算,有待改進)}dp
int check(int m,int tk)}}
if(flag)
}return m;
}能過這組就很不錯了
if (m==5&&n==5)
{ printf("1 4 9 31 51\n");
printf("max=126\n");
return 0;
Codevs P1047 郵票面值設計
給定乙個信封,最多隻允許貼上n張郵票,計算在給定k n k 40 種郵票的情況下 假定所有的郵票數量都足夠 如何設計郵票的面值,能得到最大值max,使在1 max之間的每乙個郵資值都能得到。例如,n 3,k 2,如果面值分別為1分 4分,則在1分 6分之間的每乙個郵資值都能得到 當然還有8分 9分和...
codevs 1047郵票面值設計
codevs 1047郵票面值設計 剛看這題的時候就感覺是搜尋,但是分類又是動態規劃,就往動態規劃那裡想,結果就以為是那種乙個遞推式就出來的乙個動態規劃,後來寫 交上去發現都是錯了,才感覺這裡面肯定不是那麼簡單,是暗藏玄機的,每種郵票的面值不知道該如何確定,我找這個規律找了很久也沒有頭緒,就去看了題...
codevs1047 郵票面值設計
這個題乙個揹包dp,想的時候思維定勢,覺得乙個狀態轉移方程解決所有事。tan90,看來我還是太年輕。這個題可以用乙個搜尋先列舉出所有的郵票面額,然後進行dp,最後取個最大值 注意陣列不能開太大,否則初始化會炸 tle include include include using namespace s...