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

动态规划背包刷题

洛谷P1049装箱问题

#include<iostream>
using namespace std;
int m, n;
const int N = 20005;
int v[35];
int dp[35][N];//装i个物品空间为j的盒子剩余空间最小的值
int main(){
	cin >> m >> n;
	for(int i = 1; i <= n; i++){
		cin >> v[i];
	}
	for(int i = 0; i < N; i++)dp[0][i] = i;
	for(int i = 1; i <= n; i++){
		for(int j = 0; j <= m; j++){
			if(j < v[i])dp[i][j] = dp[i - 1][j];//不够空间只能不装 
			else dp[i][j] = min(dp[i - 1][j], dp[i - 1][j - v[i]]);//空间够了可装可不装(找小的) 
		}
	}
	cout << dp[n][m] << endl;
	return 0;
}

洛谷P1060开心的金明

#include<iostream>
using namespace std;
int n, m;
const int N = 30005, M = 30;
int v[M], w[M];
int dp[N];//dp[i][j]表示不超过j元的前i物品价格*重要度的最大值 
int main(){
	cin >> n >> m;
	for(int i = 1; i <= m; i++){
		cin >> v[i] >> w[i];
	}
	for(int i = 1; i <= m; i++){
		for(int j = n; j >= v[i]; j--){
			dp[j] = max(dp[j], dp[j - v[i]] + v[i] * w[i]);
		}
	}
	cout << dp[n] << endl;
	
	return 0;
}

洛谷P3985不开心的金明

#include<iostream>
#include<algorithm>
using namespace std;
int n, m;
const int N = 110, M = 1e8;
int v[N], w[N], maxx, minn = 0x3f3f3f3f;
long long dp[M];
bool cmp(int a, int b){
	return a > b;
}
int main(){
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		cin >> v[i] >> w[i];
		maxx = max(maxx, v[i]);
		minn = min(minn, v[i]);
	}
	if(minn <= 300){
		for(int i = 1; i <= n; i++){
			for(int j = m; j >= v[i]; j--){
				dp[j] = max(dp[j], dp[j - v[i]] + w[i]);
			}
		}
		cout << dp[m] << endl;
	}
	else{
		int ans = 0;
		sort(w + 1, w + n + 1, cmp);
		for(int i = 1; i <= m / minn; i++){
			ans += w[i];
		}
		cout << ans << endl;
	}
	
	return 0;
}

洛谷P2722总分 Score Inflation

#include<iostream>
#include<algorithm>
using namespace std;
int n, m;
const int N = 10010;
int mark[N], t[N];
long long dp[N]; 
int main(){
	cin >> m >> n;
	for(int i = 1; i <= n; i++){
		cin >> mark[i] >> t[i];
	}
	dp[0] = 0;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(t[i] <= j)dp[j] = max(dp[j], dp[j - t[i]] + mark[i]);
		}
	}
	cout << dp[m] << endl;
	
	return 0;
}

相关文章:

  • 量化交易全面入门指南(2025最新版)
  • 智能疫苗查漏补种智能体创建逻辑和步骤
  • Nodemailer使用教程:在Node.js中发送电子邮件
  • HiveServer2与Spark ThriftServer详细介绍对比
  • 深度学习模型Transformer核心组件—自注意力机制
  • python-leetcode-解决智力问题
  • MyBatis-Plus 与 Redis
  • HarmonyOS Next元服务网络请求封装实践
  • 小米安全攻防工程师面试题解析
  • VMware16虚拟机安装Linux-centos教程最新
  • 时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证
  • starrocks如何配置多个hive数据源,其中一个是kerberos认证
  • 【第19节】C++设计模式(行为模式)-Command(命令)模式
  • Windows 11【1001问】打开Windows 11任务管理器的11种方法
  • MySQL中的GROUP BY、DISTINCT和HAVING说明
  • java开发常用注解
  • Flink深入浅出之01:应用场景、基本架构、部署模式
  • redis热key
  • C++【红黑树--debug】
  • OBJARX
  • 网站建设 佛山市/引流推广是什么意思
  • 农村电商网站有哪些/淄博网站推广
  • 网站后台制作用的软件/在线培训平台有哪些
  • 做会计公司网站的目录/市场调研问卷调查怎么做
  • 网站建设全包广/广东整治互联网霸王条款
  • 一元云购网站建设教程/seo优化教程下载