題目描述 給定乙個信封,最多隻允許貼上nn張郵票,計算在給定kk(n+k≤15)種郵票的情況下(假定所有的郵票數量都足夠),如何設計郵票的面值,能得到最大值max,使在1至max之間的每乙個郵資值都能得到。
例如,n=3,k=2,如果面值分別為1分、4分,則在1分~6分之間的每乙個郵資值都能得到(當然還有8分、9分和12分);如果面值分別為1分、3分,則在1分~7分之間的每乙個郵資值都能得到。可以驗證當n=3,k=2時,7分就是可以得到的連續的郵資最大值,所以max=7,面值分別為1分、3分。
輸入輸出格式 輸入格式: 2個整數,代表n,k。
輸出格式: 2行。第一行若干個數字,表示選擇的面值,從小到大排序。
第二行,輸出「max=s」,s表示最大的面值。
輸入輸出樣例 輸入樣例#1: 複製 3 2 輸出樣例#1: 複製 1 3 max=7
(嚴重投訴洛谷的題目複製,每次數字和字母都是2份,害的我寫部落格時一驚,以為自己寫錯了)
純的搜尋(終於用正解做了)
dfs不用多解釋了吧
不過在討論區看見一大佬打表的,如果有興趣可以看一看
#include#include#include
#include
#define maxn 350
using
namespace
std;
inline
intread()
while(ch>='
0'&&ch<='
9') s=s*10+ch-'
0',ch=getchar();
return s*w;}//
快讀用上癮了
inta[maxn],n,k,b[maxn],f[maxn],ans;
void dfs(int
now)
break
; }
}if(now==k) return
;
for(int i=v+1;i>a[now];--i)
}int
main()
printf("\n
");printf(
"max=%d
",ans);
return0;
}
郵票面值設計
演算法提高 郵票面值設計 時間限制 1.0s 記憶體限制 256.0mb 提交此題 錦囊1 錦囊2 問題描述 給定乙個信封,最多隻允許貼上n張郵票,計算在給定k n k 13 種郵票的情況下 假定所有的郵票數量都足夠 如何設計郵票的面值,能得到最大值max,使在1 max之間的每乙個郵資值都能得到。...
郵票面值設計
stamps 郵票問題 題目描述 已知乙個 n 枚郵票的面值集合 如,和乙個上限 k 表示信封上能夠貼 k 張郵票。計算從 1 到 m 的最大連續可貼出的郵資。例如,假設有 1 分和 3 分的郵票 你最多可以貼 5 張郵票。很容易貼出 1 到 5 分的郵資 用 1 分郵票貼就行了 接下來的郵資也不難...
wikioi 1047 郵票面值設計
同樣感觸很深的一道題,之前打表,後來自己寫了一遍 具體就是用深搜找方案,用dp判斷 一道很經典的dfs套dp,但是程式很多地方還需優化 void dfs int num,int tk,int m 當前數值,種數,估計能構成的最大值 maxn cnt return for int i check m,...