HDOJ2111 Saving HDU(背包问题)
来源:互联网 发布:adobe flash cs6 mac 编辑:程序博客网 时间:2024/05/17 05:01
题目链接:Saving HDU
这题是个背包问题,首先按照单价排序,然后,装的下就装,装不下就分割。
import java.util.Scanner;//背包问题public class Main{private static Scanner scanner;private static int pi[];private static int mi[];public static void main(String[] args) {scanner = new Scanner(System.in);while (scanner.hasNext()) {int v = scanner.nextInt();// 容量if (v == 0) {break;}int n = scanner.nextInt();// 宝贝种类pi = new int[n];// 单价mi = new int[n];// 体积for (int i = 0; i < n; i++) {pi[i] = scanner.nextInt();mi[i] = scanner.nextInt();}// 按照单价排序sort();// for (int i = 0; i < n; i++) {// System.out.println(pi[i]+","+mi[i]);// }int sum = 0;// 总价值for (int i = 0; i < n; i++) {if (mi[i] >= v) {// 来到这里就一定可以装满sum += v * pi[i];break;} else {sum += pi[i] * mi[i];v -= mi[i];// v重新表示为:背包剩余容量}}System.out.println(sum);}}private static void sort() {for (int i = 0; i < pi.length - 1; i++) {for (int j = i + 1; j < pi.length; j++) {if (pi[i] < pi[j]) {int temp = pi[i];pi[i] = pi[j];pi[j] = temp;temp = mi[i];mi[i] = mi[j];mi[j] = temp;}}}}}
阅读全文
0 0
- HDOJ2111 Saving HDU(背包问题)
- HDOJ2111(Saving HDU)(贪心)
- HDOJ 2111 Saving HDU (经典的背包贪心问题)
- HD 2111 Saving HDU 【背包问题】
- HDU杭电2111 Saving HDU【背包问题】
- 杭电 2111 Saving HDU 贪心算法 背包问题
- HDU 2111 Saving HDU(贪心,01背包)
- hdu 2111 Saving HDU (01背包)
- Saving HDU(2111)
- Saving HDU(2111)
- Saving HDU(贪心)
- Saving HDU(贪心)
- Saving HDU(贪心)
- Saving HDU(sort)
- hdu 2111(Saving HDU)
- HDU Saving HDU (贪心)
- Saving HDU(hdu2111,贪心)
- 背包问题(hdu 2602)
- git .gitignore规则及取消追踪已追踪文件
- Storm架构基础之ApacheStorm计算模型详解与实战
- ImportError: No module named matplotlib.pyplot
- HDU 1102 Constructing Roads (最小生成树 Prim算法)
- 27.开源项目--git恢复已删除分支的提交
- HDOJ2111 Saving HDU(背包问题)
- iOS开发之UI篇(4)—— 触摸事件
- Jzoj4743 积木
- 搜索算法
- JDBC简单工作原理
- 51单片机实验 2017年11月22日
- HDU 1671 Phone List(字典树)
- Maven, HelloWorld, Java, Hadoop
- ABAP 对内表数据下载到EXCEL的几种方法