当前位置: 首页 > news >正文

CCF-CSP认证 202209-2何以包邮?

题目描述

思路

一开始以为用贪心,但是实际上是01背包问题,每一个状态都是由上一个状态推导出来的,对于每本书只有放和不放两种情况,可以使用一维dp减少空间,使用一维dp时对“背包容量”要倒序遍历。

代码

C++版:

#include <bits/stdc++.h>

using namespace std;

const int M=3e5+10; // 总价格最大值 
// 动态规划,01背包 
// dp[j]表示包邮价格为j时购物车中书的总价值 
// 状态转移公式dp[j]=max(dp[j],dp[j-cost[i]]+cost[i])
int main(){
	int n,x;
	cin>>n>>x;
	
	int dp[M]={0};
	int cost[n];
	int sum=0;
	for(int i=0;i<n;i++){
		cin>>cost[i];
		sum+=cost[i]; 
	}
	int res=sum;
	for(int i=0;i<n;i++){
		for(int j=sum;j>=cost[i];j--){
			dp[j]=max(dp[j],dp[j-cost[i]]+cost[i]);
			if(dp[j]>=x&&dp[j]<res){
					res=dp[j];
			}
		}
	}
	cout<<res;
	return 0;
}

相关文章:

  • 文件上传的小点总结
  • JVM如何处理Java中的精度转换: 从源码到字节码
  • 查看自己的公有ip
  • 深度解析 | Android 13 Launcher3分页指示器改造:横线变圆点实战指南
  • 玄机-第四章 windows实战-emlog的测试报告
  • 初识Brainstorm(matlab)
  • JSON在AutoCAD二次开发中应用场景及具体案例
  • PHP 应用后台模块SessionCookieToken身份验证唯一性
  • 2025.3.17-2025.3.23学习周报
  • (UI自动化测试web端)第二篇:元素定位的方法_name定位
  • DeepSeek和Kimi在Neo4j中的表现
  • 教育装备展爆款产品:全息展示台+VR教育设备组合应用方案
  • 【自学笔记】智能合约基础知识点总览-持续更新
  • 如何使用命令行启动postgres数据库
  • 汇编语言习题笔记——第1章 汇编语言基础
  • 使用Doris broker load导入数据到带Kerberos的HA HDFS的命令详解
  • dns解析速度很快网页打开不了?
  • 5G通信协议相关
  • Leetcode 3494. Find the Minimum Amount of Time to Brew Potions
  • 网络编程--服务器双客户端聊天
  • 上海营商环境的“分寸”感:底线之上不断拓宽自由,底线之下雷霆制止
  • 湖南张家界警方公告宣布一名外国人居留许可作废
  • 潘功胜:央行将设立5000亿元服务消费与养老再贷款
  • 中国公民免签赴马来西亚的停留天数如何计算?使馆明确
  • 4月份全球制造业PMI继续下降,经济下行压力有所加大
  • AI世界的年轻人|“热潮下要有定力”,她的目标是让机器人真正步入家庭