codevs1025
2015-07-18 12:09
218 查看
题目地址:http://codevs.cn/problem/1025/
分析:
背包
代码:
var
a,b,w,c,f:array[0..2000]of longint;
n,m,x,i,k,u:longint;s:real;
begin
readln(n,m,s);x:=round(s*10);
for i:=1 to n do
begin
read(s);
a[i]:=round(10*s);
end;
for i:=1 to n do read(b[i]);
for i:=1 to n do
begin
read(k);
w[k]:=a[i];c[k]:=b[i];
end;
for i:=1 to m do
begin
read(k);u:=u+c[k];x:=x-w[k];c[k]:=-1;
end;
for i:=1 to n do
for k:=x downto w[i] do
if f[k-w[i]]+c[i]>f[k] then f[k]:=f[k-w[i]]+c[i];
writeln(f[x]+u);
end.
分析:
背包
代码:
var
a,b,w,c,f:array[0..2000]of longint;
n,m,x,i,k,u:longint;s:real;
begin
readln(n,m,s);x:=round(s*10);
for i:=1 to n do
begin
read(s);
a[i]:=round(10*s);
end;
for i:=1 to n do read(b[i]);
for i:=1 to n do
begin
read(k);
w[k]:=a[i];c[k]:=b[i];
end;
for i:=1 to m do
begin
read(k);u:=u+c[k];x:=x-w[k];c[k]:=-1;
end;
for i:=1 to n do
for k:=x downto w[i] do
if f[k-w[i]]+c[i]>f[k] then f[k]:=f[k-w[i]]+c[i];
writeln(f[x]+u);
end.
相关文章推荐
- Android项目重构之路:实现篇 读后思考
- [LeetCode] Sliding Window Maximum 滑动窗口最大值
- 【原创】贡献一个JS的弹出框代码...
- Ubuntu下启动Eclipse报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must
- 计数排序
- C#类的扩展
- 国内使用Google搜索的技巧
- java调用webservice
- 读取配置文件简单帮助类
- codevs1023
- poj 1066
- Read_tip_分析文档
- Java比较两个List的值是否相等的方法
- Java类的生命周期
- Web远程控制
- [LeetCode][Java] Word Search
- 权利与义务是在一起的
- Web开发须知:URL编码与解码
- 多颗微粒的阵列光镊系统设计
- 有关freemarker的语法,循环,逻辑