尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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; }
RELATED

相关推荐

Runway三模型策略解析:AI视频生成如何匹配真实工作场景

Runway三模型策略解析:AI视频生成如何匹配真实工作场景

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 上周,当我像往常一样打开几个常用的AI工具平台准备处理一批视频素材时,突然发现Runway的界面出现了一些微妙的…

📅 2026/9/4 14:25:22
3分钟快速上手:Windows本地实时语音转文字的终极解决方案

3分钟快速上手:Windows本地实时语音转文字的终极解决方案

3分钟快速上手:Windows本地实时语音转文字的终极解决方案 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱?在线课程听得一知半解?TMSpeech为你带来革命性的…

📅 2026/10/12 9:46:36
AI开题报告写作工具怎么选?5款主流平台实测对比

AI开题报告写作工具怎么选?5款主流平台实测对比

开题报告写了三版都被导师打回,文献综述像流水账,技术路线画得像蜘蛛网……这不是你一个人遇到的问题。每到开题季,研究现状梳理、选题依据撰写、研究方法设计都是最耗时的环节。 AI开题报告写作工具正好能派上用场——它可以快速创作结构完…

📅 2026/8/29 23:11:34
MORE NEWS

更多资讯

📰

impeccable这个词究竟怎么用?词源、搭配、近义词一次讲清

先跟你说个事:最近好多人在搜“impeccable 如何使用”,我一开始还有点意外,因为这个词在英语里算是个“老面孔”了——SAT高频词、外刊常客、英剧里绅士淑女挂在嘴边的词。但转念一想,确实可以理解。查词典你会看到“无可挑剔的、…

📰

亚马逊棋强化学习实战:构建可泛化的策略网络环境

简介:本资源是基于Alpha-Beta剪枝算法实现的亚马逊棋(Amazon Chess)人工智能对弈程序,面向算法学习者、博弈论初学者及C实践开发者,解决策略类棋盘游戏AI设计与优化的核心问题。压缩包共9个文件,含2个核心C…

📰

MATLAB端到端说话人识别:MFCC+GMM-UBM+PLDA全流程实现

简介:本资源是一套基于MATLAB实现的说话人语音识别完整工程源码,面向信号处理、语音识别方向的本科生、研究生及算法工程师,解决声纹特征提取、说话人建模与实时身份判别等核心问题,适用于智能家居声控、安全认证、人机交互等实际…

📰

ECC双面解析:椭圆曲线密码学与SAP ECC数据迁移实战

ECC大概是IT圈里少数一个缩写就能横跨两个完全不相干世界的词了。搞安全的同事一说ECC,默认是Elliptic Curve Cryptography,椭圆曲线密码学;做企业信息化的一提ECC,想的是SAP的ERP Central Component——不少老ERP系统至今还跑在这…

📰

Node.js核心机制与实战优化全解析

1. Node.js 知识体系全景图作为一名从2012年开始接触Node.js的老兵,我见证了这门技术从边缘工具成长为现代Web开发核心基础设施的全过程。Node.js的知识体系如同一座精密的钟表,各个齿轮相互咬合,初学者往往会被其庞杂的模块系统和非阻塞特性…

📰

机器学习期末复习:五大核心算法与高效备考策略

1. 机器学习期末复习的核心脉络梳理作为一名经历过三次机器学习课程重修的老兵,我深知期末复习最忌讳的就是无头苍蝇式的乱撞。机器学习不同于传统编程课程,它既包含严密的数学推导,又涉及大量需要直觉理解的算法思想。去年我用这套方法帮助7…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬