01背包和完全背包
来源:互联网 发布:淘宝物品拍照技巧 编辑:程序博客网 时间:2024/06/05 13:27
RT,题目地址http://zju.acmclub.com/index.php?app=problem_title&id=1&problem_id=2123
ps:(1)01背包和完全背包的区别在于计算方向,01背包的计算顺序是从上往下,从右往左;完全背包则是从上往下,从左往右
(2)背包是否装满的区别在于初始化第0行,若不一定装满则全部初始化为0,
若要求必须装满则dp[0]=0,dp[1~C]=(求最小值时初始化为INF,求最大值时初始化为-INF)
(3)最终返回的dp[C]即为结果。
python代码:
#coding=utf-8INF = 1000000def Matrix(rows,cols): #matrix = [[0 for col in range(cols)] for row in range(rows)] matrix = [0 for col in range(cols)] return matrixt = input()while t: [x,y]=raw_input().split() C=int(y)-int(x) lines=input() n = lines weight = [] price = [] while lines: [a,b]=raw_input().split() weight.append(int(b)) price.append(int(a)) lines -= 1 if lines==0:break mat = Matrix(n+1,C+1) #init row-0 in matrix mat[0]=0 for j in range(1,C+1):mat[j]=INF #compute the matrix for i in range(1,n+1): for j in range(weight[i-1],C+1): mat[j]=min(mat[j],mat[j-weight[i-1]]+price[i-1]) if mat[C]==INF:print "This is impossible." else: print "The minimum amount of money in the piggy-bank is %d." % mat[C] t -= 1 if t==0:break
0 0
- 01背包和完全背包
- 01背包和完全背包
- 01背包和完全背包
- 01背包和完全背包
- 01背包和完全背包
- 背包问题之01背包、完全背包和多重背包
- 01背包,完全背包
- 01背包 完全背包
- 01背包/完全背包
- 01背包,完全背包
- 01背包,完全背包
- 01背包问题和完全背包问题
- 01背包问题和完全背包问题
- 浅谈01背包和完全背包
- 01背包问题和完全背包问题
- 01背包问题和完全背包问题
- 01背包问题和完全背包问题
- 01背包问题和完全背包问题
- SqlServer 基本表操作和基本查询语句
- OpenCV官方学习文档[2014-4-26更新][最新版本2.4.9]
- 取反(~)和相反数 是不一样的!!!
- c语言中越界访问是不会报错的
- eclipse LD_LIBRARY_PATH 设置
- 01背包和完全背包
- 黑马程序员-Exception
- ZOJ1115
- 描述符相关的时间定时器
- 数据结构(java语言描述)-- 表的简单数组实现
- java处理大数类
- 黑马程序员
- UVA11987(带权并查集的删除操作)
- 黑马程序员——Java多线程—线程同步—阻塞队列:BlockingQueue