P1023 - 部分背包问题
题目描述
你有一个背包,其承重限制为$W$单位。同时,有一系列物品,每个物品有对应的重量$w_{i}$和价值$v_{i}$
现在请你编写一个程序来给背包里装物品,目标是在不超过背包最大重量的条件下,使得背包中的物品总价值最大化
每个物品可以部分放入到背包中,同时每件物品只有一件
输入格式
第1行,两个正整数,1个为W,代表背包的能承受的总重量,1个为N,代表不同物品的种类数,空格分隔
第2行,有N个正整数,代表每个不同物品的重量$w_{i}$,空格分隔
第3行,有N个正整数,代表每个不同物品的价值$v_{i}$,空格分隔
输出格式
1行,一个浮点数(保留两位小数),代表背包中的物品最大的总价值
程序中涉及到的浮点数建议使用double类型去表示
输入输出样例
| 输入样例 | 输出样例 |
|---|---|
| 20 3 18 15 10 25 24 15 |
31.50 |
数据范围与提示
100%的数据:$1 \le W, N, w_{i}, v_{i} \le 1000$
测试点数目
共10个测试点,每个测试点10分
时间与内存限制
每个测试点时间:1000ms(1.0s),内存:256MiB
输入输出模式
本OJ支持两种输入输出模式
1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:P1023.in,输出文件名为:P1023.out