C语言(19)背包问题
来源:互联网 发布:千县万村农村淘宝计划 编辑:程序博客网 时间:2024/06/01 16:20
- 输入
- 第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。 - 输出
- 输出每组测试数据中背包内的物品的价值和,每次输出占一行。
- 样例输入
13 155 102 83 9
- 样例输出
65
#include <stdio.h>int main(void){int n, s, m, i, j, k, sum, buf[10][2]={{0}};scanf("%d", &n);while(n--){scanf("%d%d", &s, &m);for(i=0; i<s; i++){scanf("%d%d", &buf[i][0], &buf[i][1]);}/*排序大到小*/for(i=0; i<s; i++){k=i;for(j=i+1; j<s; j++){if(buf[k][0] < buf[j][0]){k=j;}}if(k != i){buf[k][0]=buf[i][0]^buf[k][0];buf[i][0]=buf[i][0]^buf[k][0];buf[k][0]=buf[i][0]^buf[k][0];buf[k][1]=buf[i][1]^buf[k][1];buf[i][1]=buf[i][1]^buf[k][1];buf[k][1]=buf[i][1]^buf[k][1];}}sum = 0;for(i=0; i<s; i++){if(m>buf[i][1]){sum += (buf[i][0]*buf[i][1]);m -= buf[i][1];}else{sum += (buf[i][0]*m);break;}}printf("%d\n", sum);}return 0;}
阅读全文
0 0
- C语言(19)背包问题
- C语言背包问题
- C语言背包问题优化
- 0-1背包问题(动态规划C语言实现)
- c语言算法—01背包问题(基础型)
- 动态规划之背包问题(C语言)
- C语言之贪心算法(背包问题)
- C语言算法之背包问题
- c语言 背包问题dfs方法
- 01背包问题--C语言代码
- 0-1背包问题-C语言实现
- 背包问题的C语言实现
- C语言中的0-1背包问题
- C语言 0-1背包问题
- C语言中的装载问题(背包问题想法的运用)
- 0-1背包和背包问题(C语言实现)——贪心算法应用(3)
- 0-1背包问题(c/c++)
- 01背包问题(用c语言实现)-回溯法求解
- ONENET平台简介及简单的接入方法
- 线性代数1-矩阵基础
- 在博客中使用LaTeX插入数学公式
- HTML中使用Ajax进行局部刷新页面
- HTML键盘Enter(回车)事件绑定-yellowcong
- C语言(19)背包问题
- java下载url图片链接
- 选择排序,冒泡排序,排序算法实现与原理
- java 修饰符public protected default private
- TensorFlow相关的精彩问答
- Tomcat中JVM内存溢出及合理配置
- jQuery.cropper中文API详解
- Pull解析, 并添加到数据库中
- Crafts Store ---- a concurrent simulation in Java