單點時限: 2.0 sec
記憶體限制: 256 mb
有 n 種面額不同的郵票,面額分別為 c1,c2,c3……cn。面額 ci 的郵票最多可以取 mi 張。請問,用這些郵票,可以貼出多少面額不同的郵資 (包括 0)。貼郵票時,郵票不必全部使用。
輸入格式
本題有多組資料,第一行為乙個整數 t,表示有 t 組測試資料。
每組測試資料的第一行為乙個整數 n,表示有多少種不同面額的郵票。(1<=n<=10)
第二行有 n 個整數,分別表示第 c1,c2….cn 種不同面額。(1<=ci<=20)
第三行有 n 個整數,分別表示面額為 ci 的郵票有 mi 張。(1<=mi<=20)
輸出格式
每組資料輸出一行,每行乙個整數,表示可以貼出多少種不同的面額。
樣例input22
1 22 112
1output52
/*
思路:dp
dp[i]為1時則選擇後面郵票面值c也將為1,注意從後往前遍歷dp;
*/#include
#include
using
namespace std;
int n;
int c[21]
;int m[21]
;int dp[
5000];
intmain()
}}}int ans=0;
for(
int j =
0; j <
5000
; j++)if
(dp[j]
) ans++
; cout<}return0;
}
連續郵資問題
王曉東老師編著的 計算機演算法設計與分析 5.12 節以 連續郵資問題 為例展示了回溯法的應用。講解比較簡略,對於搜尋出一張新的郵票面值後如何更新最大連續郵資區間這一點沒有過多的說明。以下是自己對於這一節學習的一點筆記。實際上,關於剛才所說的更新最大連續郵資區間的方法,可以歸結到一種 等價類 的思想...
連續郵資問題
假設某國家發行了n種不同面值的郵票,並且規定每張信封上最多隻允許貼m張郵票。連續郵箱問題要求對於給定的n和m,給出郵票面值的最佳設計,在1張信封上貼出從郵資1開始,增量為1的最大連續郵資區間。例如當n 5,m 4時,面值為1,3,11,15,32的5種郵票可以貼出郵資的最大連續區間是1到70。inc...
連續郵資問題
連續郵資問題 演算法設計 該問題是設計最佳的郵票面值,用來表示最大的區間 對於連續郵姿問題,用n元組x 1 n 表示n種不同的郵票面值並約定它們從小到大排列。整數r表示當前使用不超過m張郵票能貼出的最大連續郵資區間。x 1 1是唯一的選擇。此時最大連續郵資區間是 1 m 接下來x 2 的可能取值範圍...