【HDOJ】2602 Bone Collector
2014-05-04 14:33
211 查看
DP。
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct { int val, vol; } bone_st; bone_st bones[1005]; int dp[1005]; int comp(const void *a, const void *b) { bone_st *p = (bone_st *)a; bone_st *q = (bone_st *)b; if (p->vol == q->vol) return q->val - p->val; else return p->vol - q->vol; } int main() { int case_n, n, v; int i, j, k; scanf("%d", &case_n); while (case_n--) { scanf("%d %d", &n, &v); for (i=0; i<n; ++i) scanf("%d", &bones[i].val); for (i=0; i<n; ++i) scanf("%d", &bones[i].vol); qsort(bones, n, sizeof(bone_st), comp); memset(dp, 0, sizeof(dp)); for (i=0; i<n; ++i) { if (bones[i].vol > v) break; k = bones[i].val; for (j=v; j>=bones[i].vol; --j) { if (k+dp[j-bones[i].vol] > dp[j]) dp[j] = k + dp[j-bones[i].vol]; } } printf("%d\n", dp[v]); } return 0; }
相关文章推荐
- HDOJ-2602 Bone Collector [DP-01背包问题]
- hdoj2602_Bone Collector
- HDOJ2602 Bone Collector(0/1背包)
- Bone Collector(hdoj--2602--01背包)
- HDOJ 2602 Bone Collector 【动态规划 01背包】
- HDOJ--2602--Bone Collector--dp--01背包
- hdoj 2602 Bone Collector
- HDOJ 2602 Bone Collector(背包问题)
- HDOJ 2602 Bone Collector(0-1背包)
- hdoj-2602 Bone Collector
- HDoj 2602 Bone Collector 01背包
- hdoj 2602 Bone Collector 【01背包】
- HDOJ 2602 Bone Collector 【0 1背包】
- HDOJ -- 2602 Bone Collector
- hdoj2602_Bone Collector(dp)
- HDOJ 2602 Bone Collector
- HDOJ 题目2602 Bone Collector(动态规划,01背包)
- 01背包-HDOJ2602-Bone Collector
- hdoj 2602 Bone Collector 【01背包】
- HDOJ 2602 Bone Collector(01背包)