【POJ - 3624 】Charm Bracelet (dp,0-1背包裸题)
題干:
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the?N?(1 ≤?N?≤ 3,402) available charms. Each charm?i?in the supplied list has a weight?Wi?(1 ≤?Wi?≤ 400), a 'desirability' factor?Di?(1 ≤?Di?≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than?M?(1 ≤?M?≤ 12,880).
Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings.
Input
* Line 1: Two space-separated integers:?N?and?M
* Lines 2..N+1: Line?i+1 describes charm?i?with two space-separated integers:?Wi?and?Di
Output
* Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints
Sample Input
4 6 1 4 2 6 3 12 2 7Sample Output
23解題報告:
? ? 可以說是十分裸題了。0-1背包
AC代碼:
//0-1裸題 #include <cstdio> #include <algorithm> #include <cstring> #include<iostream> #include <queue> using namespace std; int w[100000],v[100000]; int dp[100000]; int n,m; int main() {while(cin>>n>>m) {for(int i = 1; i<=n; i++) {cin>>w[i]>>v[i];}for(int i = 1; i<=n; i++) {for(int j = m; j>=w[i]; j--) {dp[j] = max(dp[j],dp[j-w[i]] + v[i]);}}cout<<dp[m]<<endl;}return 0 ; }總結
以上是生活随笔為你收集整理的【POJ - 3624 】Charm Bracelet (dp,0-1背包裸题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HDU - 2104】hide han
- 下一篇: shstart.exe - shstar