小偷进了一个宝库,宝库里有很多财宝,每个财宝有它的价值,也有它的体积。而小偷的背包体积是有限的, 装进背包的物品总体积不能超过背包的体积 。另外小偷心里有一个规矩,就是每次偷东西,最多只拿K件,多余的不拿。 问该小偷此次偷财宝,一次最多能偷到多大价值的财宝。-笔试面试资料
这是qklbishe.com第8509 篇笔试面试资料
提供答案分析,通过本文《小偷进了一个宝库,宝库里有很多财宝,每个财宝有它的价值,也有它的体积。而小偷的背包体积是有限的, 装进背包的物品总体积不能超过背包的体积 。另外小偷心里有一个规矩,就是每次偷东西,最多只拿K件,多余的不拿。
问该小偷此次偷财宝,一次最多能偷到多大价值的财宝。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
小偷进了一个宝库,宝库里有很多财宝,每个财宝有它的价值,也有它的体积。而小偷的背包体积是有限的,装进背包的物品总体积不能超过背包的体积。另外小偷心里有一个规矩,就是每次偷东西,最多只拿K件,多余的不拿。
问该小偷此次偷财宝,一次最多能偷到多大价值的财宝。
#include<iostream> #include <sstream> #include<vector> #include<string.h> using namespace std; vector<int> get(string s) { vector<int> a; stringstream str(s); int temp; while (str >> temp) a.push_back(temp); return a; } int f[1000][2]; int main() { int c; cin >> c; getchar(); string v; getline(cin, v); vector<int> vv = get(v); string p; getline(cin, p); vector<int> ***bsp;= get(p); int touch; cin>>touch; memset(f, 0,sizeof(f)); for (int i = 0; i < vv.size(); i++) { for (int j = c; j >= vv[i]; j--) { if (f[j][0] > f[j - vv[i]][0] + vp[i]) { f[j][0] = f[j][0]; } else if ((f[j][0] <= f[j - vv[i]][0] + vp[i])) { if (f[j - vv[i]][1] + 1 <= touch) { f[j][1] = f[j - vv[i]][1] + 1; f[j][0] = f[j - vv[i]][0] + vp[i]; } } } } int maxNum = 0; for (int i = 1; i <= c; i++) { maxNum = max(maxNum, f[i][0]); } cout << maxNum << endl; }
今天 11:38:33 回复(0)
文章部分来自互联网,侵权联系删除
www.qklbishe.com
区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站部分资料来自网络,侵权联系删除!资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 小偷进了一个宝库,宝库里有很多财宝,每个财宝有它的价值,也有它的体积。而小偷的背包体积是有限的, 装进背包的物品总体积不能超过背包的体积 。另外小偷心里有一个规矩,就是每次偷东西,最多只拿K件,多余的不拿。 问该小偷此次偷财宝,一次最多能偷到多大价值的财宝。-笔试面试资料
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 小偷进了一个宝库,宝库里有很多财宝,每个财宝有它的价值,也有它的体积。而小偷的背包体积是有限的, 装进背包的物品总体积不能超过背包的体积 。另外小偷心里有一个规矩,就是每次偷东西,最多只拿K件,多余的不拿。 问该小偷此次偷财宝,一次最多能偷到多大价值的财宝。-笔试面试资料