蓝桥杯备考:01背包+dfs---》搭配购买

embedded/2025/3/19 4:30:05/

我们可以把搭配的那些云当作一个一个的连通块,然后把这些连通快当成每个物体

比如,本题就是两个连通块

当我们做好连通块儿的时候,我们分析一下01背包

step1 分析状态表示 f[i][j]表示 从1到i个物品选出价格不超过j的最大价值

step2:推导状态转移方程

初始化,我们还是全部初始化为0就行了

最后答案就在f[cnt][p]里

最后我们优化成一维

好的我们来实现一下代码吧

#include <iostream>
#include <vector>
using namespace std;
int n, m, p;
const int N = 1e4 + 10;
int w[N], v[N];
bool st[N];
int cnt;
vector<int> edges[N];
int vv[N], ww[N];//vv代表价值,ww代表价格 
int f[N];
void dfs(int i)
{st[i] = true;vv[cnt] += v[i];ww[cnt] += w[i];for (auto& e : edges[i]){if (!st[e]){dfs(e);}}
}
int main()
{cin >> n >> m >> p;for (int i = 1; i <= n; i++){cin >> w[i] >> v[i];}//构建图 for (int i = 1; i <= m; i++){int x, y; cin >> x >> y;edges[x].push_back(y);edges[y].push_back(x);}//dfs合并连通块 for (int i = 1; i <= n; i++){if (!st[i]){cnt++;dfs(i);}}//01背包for (int i = 1; i <= cnt; i++){for (int j = p; j >= ww[i]; j--){f[j] = max(f[j], f[j - ww[i]] + vv[i]);}}cout << f[p] << endl;return 0;
}


http://www.ppmy.cn/embedded/173761.html

相关文章

uniapp中使用webview并与原页面通信

uniapp中使用webview并与原页面通信 1.接收数据 主要使用message与onPostMessage接收原页面数据&#xff0c;且两个方法只能在APP中使用&#xff0c;其他平台均不支持。 <web-view style"z-index: 1;" :src"webViewUrlappview" onPostMessage"h…

StarRocks SQL使用与MySql的差异及规范注意事项

StarRocks为OLAP列存数据库&#xff0c;擅长复杂分析查询&#xff0c;需显式定义分区/分桶键&#xff1b;MySQL为OLTP行存数据库&#xff0c;适合事务处理。SQL差异&#xff1a;StarRocks支持批量写入&#xff08;避免单行INSERT&#xff09;、物化视图优化&#xff0c;禁用LIM…

R语言的安全编码

R语言的安全编码实践 引言 在数据科学和统计分析的快速发展中&#xff0c;R语言成为了一种广泛使用的工具。虽然R语言为数据分析提供了强大的功能&#xff0c;但在编写R代码时&#xff0c;安全性常常被忽视。安全编码不仅关乎软件的稳定性和可靠性&#xff0c;还涉及到数据隐…

unreal engine5 mation warping使用,敌人受击后面向攻击者

UE5系列文章目录 文章目录 UE5系列文章目录前言一、Motion Warping是什么&#xff1f;二、使用步骤 前言 unreal engine5 mation warping使用&#xff0c;敌人受击后面向攻击者 一、Motion Warping是什么&#xff1f; 在Unreal Engine 5中&#xff0c;**Motion Warping&…

python-websocket压力测试

一.websocket简介及安装 使用pip命令安装websocket库&#xff1a;pip install websocket-client websocket.WebSocketApp 是对 websocket.WebSocket 的封装&#xff0c;支持自动定时发送 PING 帧&#xff0c;支持事件驱动方式的数据帧接收&#xff0c;可用于长期的 WebSocket…

Webpack优化前端性能

Webpack优化前端性能☆☆ 涵盖了代码分割、懒加载、压缩、缓存优化、Tree Shaking、图片优化、CDN使用等多个方面。 Webpack优化前端性能详解(2025综合实践版) Webpack作为现代前端工程化的核心工具,其优化能力直接影响项目的首屏速度、交互流畅度和用户体验。以下从代码维…

SpringMVC——表现层数据封装、异常处理器

目录 数据封装协议 为什么要进行数据封装 实现数据封装 测试 异常处理器 实现异常处理器 项目异常处理 实现处理不同的异常 数据封装协议 为什么要进行数据封装 当接口响应格式不一致时&#xff1a; 前端需要为不同接口编写多种解析逻辑 错误处理逻辑难以统一 接口文…

游戏引擎学习第161天

回顾并计划今天的工作 我们从头开始编写一款完整的游戏&#xff0c;完全不依赖游戏引擎和库。我们会从最基本的渲染代码开始&#xff0c;一直到高层的AI代码&#xff0c;涵盖其中的一切。 目前&#xff0c;我们正在做一些比较轻松有趣的事情&#xff0c;可以说是比较随意的内…