博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php实现 称砝码(背包)
阅读量:6422 次
发布时间:2019-06-23

本文共 1465 字,大约阅读时间需要 4 分钟。

php实现 称砝码(背包)

一、总结

一句话总结:

 

1、dp的实质是什么?

刷表啊,用空间换时间

把表画出来会做得更快

13 //动态规划就是一个表14 //至于这个表的更新就是上面层的表更新下面层的,是逐级更新还是跳级更新要注意15 //把表画出来做的更快

 

2、dp的初始状态怎么得到(其实可以最开始想到的就是用所求做状态)?

其实可以最开始想到的就是用所求做状态

4 //dp就是思考变量(然后变量组合成初始状态):变量有用几种砝码,每种砝码有多少个,重量为多少

 

3、dp的状态转移方程怎么得到?

用不同的初始状态去试

一维不行就加到二维,二维不行就加到3维

 

4、这里又忘记初始化中间数组了(在不同的组数据之间)?

26     $dp=null;27     $dp[0]=1;

 

 

 

二、称砝码(背包)

题目描述

现有一组砝码,重量互不相等,分别为m1,m2,m3…mn;

每种砝码对应的数量为x1,x2,x3...xn。现在要用这些砝码去称物体的重量,问能称出多少中不同的重量。

 

注:

称重重量包括0

 

方法原型:public static int fama(int n, int[] weight, int[] nums)

 

输入描述:

输入包含多组测试数据。 对于每组测试数据: 第一行:n --- 砝码数(范围[1,10]) 第二行:m1 m2 m3 ... mn --- 每个砝码的重量(范围[1,2000]) 第三行:x1 x2 x3 .... xn --- 每个砝码的数量(范围[1,6])

输出描述:

利用给定的砝码可以称出的不同的重量数

示例1

输入

21 22 1

输出

5

 

代码:

 

1 
ni]11 //f[i][j][k]表示前i种物品取j件能否达到k重量12 13 //动态规划就是一个表14 //至于这个表的更新就是上面层的表更新下面层的,是逐级更新还是跳级更新要注意15 //把表画出来做的更快16 while($n=trim(fgets(STDIN))){17 $w=trim(fgets(STDIN));18 $num=trim(fgets(STDIN));19 $w=explode(' ',$w);20 $num=explode(' ',$num);21 $total=10;22 for($i=0;$i<$n;$i++){23 $total+=$w[$i]*$num[$i];24 }25 26 $dp=null;27 $dp[0]=1;28 for($i=1;$i<=$n;$i++){29 for($j=$total;$j>=0;$j--){30 for($k=0;$k<=$num[$i-1];$k++){31 if($j-$k*$w[$i-1]>=0&&$dp[$j-$k*$w[$i-1]]){32 $dp[$j]=1;33 break;34 } 35 }36 }37 }38 echo count($dp).PHP_EOL;39 //print_r($w);40 //print_r($num);41 42 }43 ?>

 

 

 

 

 

转载地址:http://yhrra.baihongyu.com/

你可能感兴趣的文章
Mobile devices bundled with malware?
查看>>
《JavaScript面向对象精要》——1.5 访问属性
查看>>
《Python数据可视化编程实战》—— 第 1 章 准备工作环境
查看>>
Android应用性能优化最佳实践.1.1 Android Studio的优势
查看>>
《设计模式解析(第2版•修订版)》—第2章 2.2节什么是UML
查看>>
【健康医疗】4步完成数据分析报表,让医疗数据转化为生产力
查看>>
【直播】APP全量混淆和瘦身技术揭秘
查看>>
10个大坑,当你产品上架AppStore会遇到
查看>>
【shell 脚本】两种登录方式
查看>>
学习编程的方法
查看>>
升级linux自带的Python
查看>>
百度地图2.0瓦片地址获取(窗口内瓦片)
查看>>
我的友情链接
查看>>
.JDK1.6安装配置后的测试
查看>>
判断闰年的函数
查看>>
pkill -9 nginx
查看>>
关于ASP.NET MVC4 Web API简单总结
查看>>
BGP最新的AS号:4-byte-as 转换为十进制及AS号兼容性
查看>>
Windows2008server R2 组策略批量更改本地管理员密码
查看>>
ubutnu安装geany
查看>>