news 2026/11/4 12:28:56

逆向处理|并查集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
逆向处理|并查集

Solve and verify once it occurs

lc924

逆向思维 抽象为 连通块问题

在恶意软件传播的网络中,从初始感染节点里删一个节点,找出能让最终感染节点数最少的节点,若有多个则返回索引最小的

DFS遍历未感染节点连通域

统计仅受单个初始感染节点影响的区域大小,找到删除后能最大程度减少感染的初始节点,无则返回初始节点中的最小值

924题

并查集/DFS统计感染源支配的连通域,选删除后减少感染最多的节点

928题

DFS标记单感染源连通域,计算删除节点后可保护的节点数,选最优节点(多解选索引最小)

class Solution {
public:
int minMalwareSpread(vector<vector<int>>& graph, vector<int>& initial)

{
unordered_set<int> st(initial.begin(), initial.end());
vector<int> vis(graph.size());
int node_id, size;
function<void(int)> dfs = [&](int x) {
vis[x] = true;
size++;
for (int y = 0; y < graph[x].size(); y++) {
if (graph[x][y] == 0) {
continue;
}
if (st.contains(y)) {
// 按照 924 题的状态机更新 node_id
// 注意避免重复统计,例如上图中的 0 有两条不同路径可以遇到 1
if (node_id != -2 && node_id != y) {
node_id = node_id == -1 ? y : -2;
}
} else if (!vis[y]) {
dfs(y);
}
}
};

unordered_map<int, int> cnt;
for (int i = 0; i < graph.size(); i++) {
if (vis[i] || st.contains(i)) {
continue;
}
node_id = -1;
size = 0;
dfs(i);
if (node_id >= 0) { // 只找到一个在 initial 中的节点
// 删除节点 node_id 可以让 size 个点不被感染
cnt[node_id] += size;
}
}

int max_cnt = 0;
int min_node_id = 0;
for (auto [node_id, c] : cnt) {
if (c > max_cnt || c == max_cnt && node_id < min_node_id) {
max_cnt = c;
min_node_id = node_id;
}
}
return cnt.empty() ? ranges::min(initial) : min_node_id;
}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 3:27:50

DDU清除残留驱动:游戏本显卡优化核心要点

DDU清除残留驱动&#xff1a;游戏本显卡优化实战全解析 你有没有遇到过这样的情况——刚更新完显卡驱动&#xff0c;结果《赛博朋克2077》一开光追就黑屏重启&#xff1f;或者设备管理器里突然冒出个“未知设备”&#xff0c;明明昨天还能满帧跑《艾尔登法环》&#xff1f; 别…

作者头像 李华
网站建设 2026/11/5 7:53:18

AI教师助手开发实录:个性化语音生成助力在线教育

AI教师助手开发实录&#xff1a;个性化语音生成助力在线教育 &#x1f3af; 背景与需求&#xff1a;让AI教师“声”动起来 随着在线教育的快速发展&#xff0c;传统录播课程和机械式TTS&#xff08;文本转语音&#xff09;系统已难以满足学习者对沉浸感、情感化、个性化教学体验…

作者头像 李华
网站建设 2026/11/4 9:29:40

波特率误差对UART通信的影响:系统学习与计算方法

波特率误差对UART通信的影响&#xff1a;从原理到实战的深度解析你有没有遇到过这样的情况&#xff1f;程序逻辑没问题&#xff0c;接线也正确&#xff0c;但串口就是时通时断&#xff0c;偶尔收到乱码&#xff0c;甚至完全无响应。排查半天最后发现——问题出在波特率上。别小…

作者头像 李华
网站建设 2026/11/1 10:56:45

基于AUTOSAR的NM唤醒机制:系统集成全面讲解

AUTOSAR网络唤醒机制深度解析&#xff1a;从报文到系统级集成 汽车电子系统的复杂度正在以惊人的速度攀升。如今一辆高端车型可能拥有超过100个ECU&#xff0c;遍布车身、动力、底盘和信息娱乐系统。在这样的分布式架构下&#xff0c;如何让这些节点既保持高效通信&#xff0c;…

作者头像 李华
网站建设 2026/11/2 3:44:58

USB3.1协议层流量控制对传输速度的影响研究

深入解析USB3.1协议层流量控制&#xff1a;为何你的10Gbps接口跑不满&#xff1f;你有没有遇到过这种情况&#xff1f;手里的外接NVMe固态硬盘标称支持USB3.1 Gen2&#xff0c;理论速度高达10Gbps&#xff08;约1.25GB/s&#xff09;&#xff0c;可实际拷贝大文件时&#xff0c…

作者头像 李华
网站建设 2026/11/3 8:17:00

知网AI率降不下去?这招改完稳稳降到个位数!

兄弟姐妹们&#xff0c;写论文那点事儿&#xff0c;最难的莫过于降AI率。你天天一段段改&#xff0c;改到头都大了&#xff0c;还降不下来&#xff1f;别傻了&#xff0c;告诉你个大坑&#xff1a;千万别一段一段改&#xff01;那样逻辑散了&#xff0c;AI根本看不懂&#xff0…

作者头像 李华