您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

贪心算法问题

来源:一方有 责任编辑:栏目编辑 发表时间:2013-07-01 06:44 点击:

7.设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,
最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,
而价值的和为最大。

 

  1. <?php  
  2. /*  
  3. *7.设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,  
  4. 最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,  
  5. 而价值的和为最大。  
  6. *系统环境:windows/linux  
  7. *编译环境:php4/php5  
  8. *输入参数:存放在in.txt,多个参数时空格分隔  
  9.                     参数1是一组数字,表示一组物品的重量和价值,中间用分号分割,每个物品重量和价值之间用逗号分隔;  
  10.                     重量,单位为千克,不能有0,物品的价值,个数必须和重量一样  
  11.                     参数3是一个数字,表示最大重量,单位为千克,  
  12.                     例如格式:1,1;3,4;2,4;3,7;9,8 10  
  13.     输出:out.txt  
  14.  
  15. */ 
  16. $params=getParams(2);  
  17. $argv0=trim(trim($params[0]),";");  
  18. $argv1=trim($params[1]);  
  19. //检查参数1  
  20. if(!preg_match_all("/^((\d+,\d+);?)+$/i"$argv0,$matches))  
  21. {  
  22.     error_msg("params 1 must is group of numbers,break with ; and ,");  
  23. }  
  24. //检查参数2  
  25. if(!is_numeric($argv1))  
  26. {  
  27.     error_msg("params 3 must be a numbers");  
  28. }  
  29. $weights=array();  
  30. $values=array();  
  31. $a=split(";",trim(

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • PHP测试
      • 十天学会php之第六天
      • 几种显示数据的方法的比较
      • 使用xmlhttp为网站增加域名查询功能
      • PHP+MYSQL+Javascript数据库查询结果的动态显示
      • 查找数组中指定键名的值
      • 用redis实现跨服务器session
      • 用新浪微博接口发送图片微博失败的原因
      • smarty局部缓存技术[源码分析]
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1