NYOJ 106 背包问题
2014-02-12 17:20
267 查看
原题链接
这题只需要将所有物品按照降序排序,然后从上往下取就行,附ac代码:
#include <stdio.h>
#include <stdlib.h>
struct Node{
int v, w;
};
int cmp(const void *a, const void *b){
return (*(Node *)b).v - (*(Node *)a).v; //按单位价值降序
}
int main(){
int t, s, v, w, m;
Node a[11], sum;
scanf("%d", &t);
while(t-- && scanf("%d%d", &s, &m)){
int i;
for(i = 0; i != s; ++i)
scanf("%d%d", &a[i].v, &a[i].w);
qsort(a, s, sizeof(Node), cmp);
for(i = sum.v = sum.w = 0; i != s; ++i){
if(a[i].w >= m - sum.w){
sum.v += (m - sum.w) * a[i].v;
break;
}
else{
sum.w += a[i].w;
sum.v += a[i].v * a[i].w;
}
}
printf("%d\n", sum.v);
}
return 0;
}
相关文章推荐
- 【ACM】nyoj_106_背包问题_201308152026
- nyoj106_背包问题(贪心or多重背包解法)
- NYOJ-106:背包问题
- nyoj106背包问题为模板解出杭电oj2187悼念512汶川大地震遇难同胞——老人是真饿了
- NYOJ 106 背包问题
- nyoj106背包问题
- NYOJ 题目106 背包问题
- NYOJ 106 背包问题
- 贪心——NYOJ题目106 背包问题
- NYOJ 106 背包问题
- NYOJ 106 背包问题
- nyoj 106 背包问题 【背包问题】【贪心】
- nyoj_106 背包问题
- NYOJ-106 背包问题(贪心)
- NYOJ 106背包问题
- NYOJ 106 背包问题
- NYOJ 106 背包问题 贪心算法
- NYOJ 106 背包问题
- nyoj 106背包问题
- nyoj-106-背包问题