尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

CCF-CSP 37-2(完全背包问题)

发布时间:2026/9/15 1:03:38

资讯中心
01
ARTICLE

CCF-CSP 37-2(完全背包问题)

CCF-CSP 37-2(完全背包问题)
#includeiostream #includevector #includeunordered_map #includealgorithm//sort排序 using namespace std; //vector数组定义排序 bool compare(pairint, int p1, pairint, int p2) { return (p1.second / static_castdouble(p1.first)) (p2.second / static_castdouble(p2.first)); } int main() { int n, m; cin n m; vectorpairint, int arr; for (int i 1; i m; i) { int cur; cin cur; arr.push_back(make_pair(i, cur));//苹果个数价值 } sort(arr.begin(), arr.end(), compare); int res 0; int step 0; while (n ! 0) { int num n / arr[step].first; cout arr[step].first endl; if (num 0) { step; continue; } n - num * arr[step].first; res num * arr[step].second; step; } cout res endl; return 0; }刚开始的想法是用vector数组以得到价值/投喂个数 作为判断条件价值降序排列以单个苹果价值高的优先考虑样例一能够很好的解决但是样例二得到的结果不正确分析后得到问题这个题目要考虑组合的问题联想到背包问题重新进行解决将苹果个数作为背包容量价值则为价值。​ #includeiostream #includevector using namespace std; int main() { int n, m; cin n m; vectorint arr(m1);//arr[i]存放大小为i的价值 for (int i 1; i m; i) { int value; cin value; arr[i] value; } vectorint dp(n1,INT_MIN);//dp[i]表示容量为i产生的最大价值 dp[0] 0; for (int i 0; i n; i) { if (dp[i] INT_MIN)continue;//还不能拓展到 //在已知最优解的基础上拓展空间 for (int j 1; j m; j) { if (i j n)continue; if (dp[i j] dp[i] arr[j]) { dp[i j] dp[i] arr[j]; } } } cout dp[n] endl; return 0; } ​这里需要注意要从dp[0]开始拓展我开始用的是dp[1] arr[1]拓展但是如果arr[2]arr[1]arr[1]就会出现未考虑的错误情况下面附上回缩式的标准完全背包问题解法#include iostream #include vector #include algorithm #include climits using namespace std; int main() { int n, m; cin n m; vectorint A(m 1); A[0] 0; for (int i 1; i m; i) { cin A[i]; } //dp表示背包容量为n时最大值为多少 vectorint dp(n 1, INT_MIN); dp[0] 0; for (int j 1; j n; j) { for (int i 1; i min(m, j); i) { if (dp[j - i] A[i] dp[j]) { //如果放入i会使最大值增加则更新 dp[j] dp[j - i] A[i]; } } } cout dp[n] endl; return 0; }
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。