C/C++教程

挑战性题目DSCT601:背包问题

本文主要是介绍挑战性题目DSCT601:背包问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

挑战性题目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;快期末了,挑战题最后一道是背包问题。而这门课没有讲动态规划

这篇关于挑战性题目DSCT601:背包问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!