贪心算法问题
来源:一方有 责任编辑:栏目编辑 发表时间:2013-07-01 06:44 点击:次
7.设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,
最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,
而价值的和为最大。
- <?php
- /*
- *7.设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,
- 最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,
- 而价值的和为最大。
- *系统环境:windows/linux
- *编译环境:php4/php5
- *输入参数:存放在in.txt,多个参数时空格分隔
- 参数1是一组数字,表示一组物品的重量和价值,中间用分号分割,每个物品重量和价值之间用逗号分隔;
- 重量,单位为千克,不能有0,物品的价值,个数必须和重量一样
- 参数3是一个数字,表示最大重量,单位为千克,
- 例如格式:1,1;3,4;2,4;3,7;9,8 10
- 输出:out.txt
- */
- $params=getParams(2);
- $argv0=trim(trim($params[0]),";");
- $argv1=trim($params[1]);
- //检查参数1
- if(!preg_match_all("/^((\d+,\d+);?)+$/i", $argv0,$matches))
- {
- error_msg("params 1 must is group of numbers,break with ; and ,");
- }
- //检查参数2
- if(!is_numeric($argv1))
- {
- error_msg("params 3 must be a numbers");
- }
- $weights=array();
- $values=array();
- $a=split(";",trim(
相关新闻>>
- 发表评论
-
- 最新评论 更多>>