動態規劃 硬幣問題

2021-07-22 01:17:21 字數 1997 閱讀 4038

這是乙個固定重點的最長路和最短路問題,可用動態規劃問題來求解

//代表硬幣總值,n代表硬幣總數,v陣列儲存硬幣各個面值, d代表從i出發到結點0的路徑的最長路徑長度或最短路徑長度

//vis代表是否訪問過該結點

int n, s, v[maxn], d[maxn], vis[maxn];

int dpmax(int s)

return ans;

}int dpmin(int s)

return ans;

}int main()

cout << dpmax(s) << endl;

memset(vis, 0, sizeof(vis));

memset(d, 0, sizeof(d));

vis[0] = 1;

cout << dpmin(s) << endl;

system("pause");

return 0;

}執行結果:

3 600

2 3 5

300120

請按任意鍵繼續. . .

} printf("最短路徑為:%d, 分別為:", minv[s]);

print_ans(min_coin, s);

printf("\n最短路徑為:%d, 分別為:", maxv[s]);

print_ans(max_coin, s);

printf("\n");

}printf("%s %s\n", __date__, __time__);

system("pause");

return 0;

}

執行結果:

3 6

2 3 5

最短路徑為:2, 分別為:3 3

最短路徑為:3, 分別為:2 2 2

aug 24 2016 23:48:03

請按任意鍵繼續. . .

動態規劃 硬幣問題

2013 07 11 03 17 5610人閱讀收藏 舉報 演算法和資料結構學習 79 最少硬幣問題 假設有3種不同的硬幣,幣值分別是coinvalue 每一種硬幣的數量是有限的,分別是coinnum 給定乙個數值target 18,找出一種硬幣數最少的方法,輸出最少的硬幣數。思路 動態規劃。問題定...

動態規劃 硬幣問題

問題描述 輸入總金額n,硬幣不同價值的種類m,m種硬幣的面值 例如 15 6 1 2 7 8 12 50 輸出湊成n最少的硬幣數 1 貪心演算法 每次都選擇面值最大的。問題在於,求出來的並不是最優解,上例中,用貪心解出來的結果為3 1,2,12 而實際為2 7,8 include includeus...

動態規劃 硬幣問題

整理的演算法模板合集 acm模板 問題描述 有n種硬幣,面值分別為v1,v2,v 3,v nv 1,v 2,v 3,v n v1 v2 v3 v n 每種都有無限多。給定非負整數s,可以選用多少個硬幣,使得面值之和恰好為s?輸出硬幣數目的最小值和最大值。1 n 100,0 s 10000,1 vi ...