挑战性题目DSCT601:背包问题
问题描述
有一个容量为 V V V的背包,要求往背包中装入价值尽可能多的物品。这些物品分别有两个属性:体积 w w w和价值 v v v,且每种物品至多有一个,背包可以不被装满,求装入后的最大价值。
输入输出格式:
第一行为两个整数
N
、
V
N、V
N、V,用空格隔开,表示背包的容量
V
V
V与物品的数量
N
N
N。接下来
N
N
N行每行由两个整数
w
i
w_i
wi与
v
i
v_i
vi组成,用空格隔开,表示物品i的体积和价值。请以printf()
方式输出最大价值即可。
约定 0 < N , V ≤ 1000000 0 < N, V ≤ 1000000 0<N,V≤1000000,且 0 < w i , v i ≤ 4294967296 0 < wi,vi ≤ 4294967296 0<wi,vi≤4294967296
题解
讲个笑话:开学一个月,挑战题第一道是数位dp;快期末了,挑战题最后一道是背包问题。而这门课没有讲动态规划