南阳OJ 的背包问题

ForesterX 2017-10-05 10:46:07


题目链接 http://acm.nyist.net/JudgeOnline/problem.php?pid=106

背包问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。
输入
第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
输出
输出每组测试数据中背包内的物品的价值和,每次输出占一行。
样例输入
1
3 15
5 10
2 8
3 9
样例输出
65
来源
[苗栋栋]原创
上传者
苗栋栋



我运行的没有问题 ,但是提交编译就出问题 ,看了提示的信息 , 也不明白说的什么
谁有时间的帮我看看么 .
,

代码如下 :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


class Goods implements Comparable{
int per;
int count;

//按照降序
@Override
public int compareTo(Object o1) {
Goods o = (Goods)o1;
if(this.per > o.per){
return -1;
}else if(this.per == o.per){
return 0;
}else{
return 1;
}

}
}

public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine());
List<Goods> list = new ArrayList<Goods>();
while((N--)!=0){
String str[] = reader.readLine().split(" ");

int n = Integer.parseInt(str[0]);
int weight = Integer.parseInt(str[1]);

while((n--)!=0){
Goods good = new Goods();
str = reader.readLine().split(" ");
good.per = Integer.parseInt(str[0]);
good.count = Integer.parseInt(str[1]);
list.add(good);
}

//开始排序
Collections.sort(list);


//开始计算
int count = 0;
int add_weight = 0;
for(int i=0;i<list.size();i++){

if(list.get(i).count <=(weight-add_weight)){
count+= list.get(i).per * list.get(i).count;
add_weight+=list.get(i).count;
}else{
count+= list.get(i).per * (weight-add_weight);
add_weight += (weight-add_weight);
}

if(add_weight >= weight){
break;
}
}
System.out.println(count);

}
reader.close();
}
}




...全文
100 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧