有趣的DP 郵票問題

2021-07-15 18:29:54 字數 1005 閱讀 7608

【題目描述】

給定乙個信封,最多隻允許貼上n(n≤100)張郵票,我們現在有m(m≤100)種郵票,面值分別為:x1,x2……xm(xi≤255為正整數),並假設各種郵票都有足夠多張。

要求計算所能獲得的郵資最大範圍。即求最大值max,使1-max之間的每乙個郵資都能得到。

例如:n=4,有2種郵票,面值分別為1分,4分,於是可以得到1-10分和12分,13分,16分郵資,由於得不到11分和15分,所以郵資的最大範圍max=10

【輸入格式】

第一行為最多貼上的郵票張數n。第二行為郵票種數m。以下m行各有乙個數字表示郵票的面值。

【輸出格式】

僅乙個數,最大的max的值。

【輸入樣例】

【輸出樣例】

【時間限制】

最大測試點0.5s

用的搜尋做的,不知道對不對,求教。

#include #include #include using namespace std;

int cmp(int a, int b)

int n, m;

int stamp[105];

bool vis[25500+5];

void solve(int num, int bal)

}int main()

sort(stamp+1, stamp+m+1, cmp);

maxn = stamp[m]*n;

vis[0] = true;

vis[maxn] = true;

for (int i = 1; i <= m; ++i)

for (int i = 1; i <= maxn + 1; ++i)

}printf("%d\n", ans);

return 0;

}

郵票問題詳細題解 簡單dp

已知乙個 n 枚郵票的面值集合 如,和乙個上限 k 表示信封上能夠貼 k 張郵票。計算從 1 到 m 的最大連續可貼出的郵資。例如,假設有 1 分和 3 分的郵票 你最多可以貼 5 張郵票。很容易貼出 1 到 5 分的郵資 用 1 分郵票貼就行了 接下來的郵資也不難 6 3 3 7 3 3 1 8 ...

DP求解有趣的數問題

dynamic programming 動態規劃 問題描述 我們把乙個數稱為有趣的,當且僅當 1.它的數字只包含0,1,2,3,且這四個數字都出現過至少一次。2.所有的0都出現在所有的1之前,而所有的2都出現在所有的3之前。3.最高位數字不為0。因此,符合我們定義的最小的有趣的數是2013。除此以外...

郵票(DP或貪心)

郵票已知乙個 n 枚郵票的面值集合 如,和乙個上限 k 表示信封上能夠貼 k 張郵票。計算從 1 到 m 的最大連續可貼出的郵資。例如,假設有 1 分和 3 分的郵票 你最多可以貼 5 張郵票。很容易貼出 1 到 5 分的郵資 用 1 分郵票貼就行了 接下來的郵資也不難 6 3 3 7 3 3 1 ...