LeetCode 1579. 保证图可完全遍历

华为ENSP完整安装教程 阅读详情

题目链接:LeetCode 1579. 保证图可完全遍历

题意:

   Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3  种类型的边:

  • 类型 1:只能由 Alice 遍历。
  • 类型 2:只能由 Bob 遍历。
  • 类型 3:Alice 和 Bob 都可以遍历。

给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和 Bob 都可以到达所有其他节点,则认为图是可以完全遍历的。

返回可以删除的最大边数,如果 Alice 和 Bob 无法完全遍历图,则返回 -1

输入:n = 4, edges = [[3,1,2],[3,2,3],[1,1,3],[1,2,4],[1,1,2],[2,3,4]]
输出:2
解释:如果删除 [1,1,2] 和 [1,1,3] 这两条边,Alice 和 Bob 仍然可以完全遍历这个图。再删除任何其他的边都无法保证图可以完全遍历。所以可以删除的最大边数是 2 。

 

解题思路:

   变种的最小生成树(克鲁斯卡尔算法),贪心可得优先选择类型3的边,因为类型3的边Alice和Bob都可以访问,然后再选择类型1或类型2,查看最后两个两个连通块是否大于1,如果大于1,不满足

class Solution {
public:
	vector<int> pa, pb;
	int get(vector<int>& p, int x) { // 路径压缩进行查找
		if(p[x] != x) { 
			p[x] = get(p, p[x]);
		}
		return p[x];
	}
    int maxNumEdgesToRemove(int n, vector<vector<int>>& edges) {
    	pa.resize(n+1), pb.resize(n+1);
    	for(int i = 1; i <= n; i++) { // 初始化两个连通块
    		pa[i] = pb[i] = i;
    	}
    	int res = 0, ca = n, cb = n;
    	for(auto&e: edges) {
    		if(e[0] == 3) {  // 优先选择 类型3
    			int x = e[1], y = e[2];
    			int pax = get(pa, x), pay = get(pa, y);  此时,Alice和Bob都可以通过
    			int pbx = get(pb, x), pby = get(pb, y);
    			if(pax != pay) {
    				pa[pax] = pay; ca--;
    				pb[pbx] = pby; cb--;
    			} else {
    				res++;  // 如果相等,说明两点已经联通,多出一条边
    			}
    		}
    	}
    	for(auto &e: edges) {
    		int t = e[0], x = e[1], y = e[2];
    		if(t == 1) {
    			int pax = get(pa, x), pay = get(pa, y);
    			if(pax != pay) {
    				pa[pax] = pay; ca--;
    			} else {
    				res++;
    			}
    		} else if(t == 2){
    			int pbx = get(pb, x), pby = get(pb, y);
    			if(pbx != pby) {
    				pb[pbx] = pby; cb--;
    			} else {
    				res++;
    			}
    		}
    	}
    	if(ca > 1 || cb > 1) {
    		return -1;
    	} else {
    		return res;
    	}
    }
};
滞回比较器电路详细分析 滞回比较器是一种用于检测两个不同电压值并使比较器输出高电平或低电平的电路。滞回比较器的特点是具有迟滞特性,即当输入电压高于某一阈值时,比较器输出高电平,当输入电压低于另一阈值时,比较器输出低电平,而在这两个阈值之间,比较器的输出保持不变。比较器通常有两个模拟电压输入端UIN+和UIN-以及一个数字状态输出端UOUT。当UIN+大于UIN-时,UOUT为高电平;当UIN+小于UIN-时,UOUT为低电平。根据具体的系统定义,这两种电位的具体数值可以有所不同。 阅读详情

相关推荐

深入解析ffmpeg编码错误:avcodec_send_frame()返回-22的排查与修复

本文深入解析FFmpeg编码中avcodec_send_frame()返回-22(AVERROR(EINVAL))错误的根本原因与系统排查方法。核心问题通常在于编码器未正确打开或上下文传递错误。文章提供了从检查编码器查找、确认avcodec_open2()调用,到验证上下文传递的完整修复指南,并附有可运行的代码示例,帮助开发者快速定位并解决这一常见编码障碍。

weixin_28049429的博客 390

保证图可完全遍历

题目来源:力扣(LeetCode) 题目链接:https://leetcode-cn.com/problems/remove-max-number-of-edges-to-keep-graph-fully-traversable 描述 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei,

__1_1__的博客 302

龙头复盘神器/复盘于导出工具最新版5.6

龙头复盘神器,复盘于导出工具

初入python踩过的坑 8232

力扣(leetcode)#1579 保证图可完全遍历(#4)

题目 原题链接:力扣(LeetCode)#1579 解析 还是并查集。。说实话,要做吐了。 本人的思想是维护两个连通集合Alice和Bob,一人一个。 关键点在于要进行两轮循环,首先判断公共边,如果公共边多了,就增加可以减去的边数。 第二轮循环进行独有边的判断。 考虑一下,两个顶点之间存在三种类型的边,并且该边不能全部省略,那么减去Alice和Bob两条独占边显然是最合算的。 代码 class Solution { private: int cnt1,cnt2,rest1,rest2; in

pcc3524的博客 159

深入解析SDC时钟约束:从create_clock到set_clock_groups的实战指南

本文深入解析SDC时钟约束,从create_clock到set_clock_groups的实战应用,帮助数字芯片设计工程师掌握时序约束的核心技巧。通过详细讲解时钟三要素(波形定义、不确定性和时钟关系)及实战案例,提升时钟约束的精准性和效率,避免常见设计陷阱。

weixin_29274337的博客 1077

从生产订单到整车交付,SAP 离散制造在汽车行业里的真实落点

汽车行业谈数字化,很容易一上来就谈智能工厂、数字孪生、AI 排产、无人仓、视觉质检。可落到 SAP 项目现场,真正把工厂撑起来的,往往还是几个很朴素的问题,客户订单来了以后,BOM 能不能准确展开,物料能不能准时到线,产能有没有被过度承诺,生产订单能不能被车间正确执行,质量问题能不能追溯,成本能不能按工单和批次沉淀下来。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 113

力扣 leetcode 1579. 保证图可完全遍历 (python)并查集模板思路简单易懂

Topic Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和 Bob 都可以到达所

weixin_50791900的博客 395

图像做旧算法原理及代码解释

该图像做旧算法主要通过一系列的图像处理操作来模拟旧照片的效果。整体流程包括:首先对输入图像进行颜色调整,降低饱和度并增加黄色调以营造出旧照片的色彩风格;接着添加高斯噪声来模拟旧照片可能存在的颗粒感;最后通过在图像上随机绘制线条来模拟旧照片的划痕和瑕疵。综上所述,该图像做旧算法通过对颜色的调整(包括饱和度降低、色相偏移)、添加高斯噪声以及模拟划痕和瑕疵等一系列操作,从多个方面模拟了旧照片的特征。

m0_44975814的博客 901

Leetcode1579-保证图可完全遍历

lc

aaa7888210的博客 156

MIC:最大信息系数

目录 1. 概念 1.1 MIC 1.2 互信息 2.MIC的优点 3. 算法原理 3.1 MIC公式原理 3.2MIC计算步骤 (1)计算最大互信息值 (2)对最大的互信息值进行归一化 (3)选择不同尺度下互信息的最大值作为MIC值 4. 代码实现 6. 其他方法 1. 概念 1.1 MIC MIC,即(Maximal Information...

满腹的小不甘 5万+

爬虫Incapsula reese84加密案例:Etihad航空

声明:该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。

老衲爱洗头的博客 2429

LeetCode刷题(每日一题) --1579. 保证图可完全遍历(并查集)

题目 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和 Bob 都可以到达所有其他节

Hanzoe的博客 434

出现 Error occurred during initialization of VMagent library failed Agent OnLoad 解决方法

ntelliJ IDEA启动时出现"Agent library failed to load"错误,主要原因是JVM代理加载失败。解决方法包括:1)完全卸载并删除用户目录下的JetBrains配置文件;2)检查并修改idea64.exe.vmoptions文件,确保路径正确并删除不必要的-javaagent参数;

码农研究僧的博客 2483

leetcode 1579.保证图可完全遍历

leetcode 1579.保证图可完全遍历 题干 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3  种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数

玛软的垃圾桶 155

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Leetcode1579. 保证图可完全遍历

Leetcode1579. 保证图可完全遍历 题目链接 思路 首先使用并查集检查Alice和Bob是否分别能够遍历整张图,如果一人不行则返回-1。然后,开始找两个人都能遍历的情况下的最小边,我们可以只当,两人都遍历的情况下最多的边数为2*(n-1)其中n为顶点数。为了使边数减少,我们可以这样考虑如果存在公共边即类型3我们应将该边对应的两个结点合并,因为这样可以至少减少一条边(这是一种贪心思路),我们这样考虑,如果存在一条公共边他们两个人在遍历图的时候一个人选了另外一个人没选,那么我们可以让没选的那个人加上这

qq_47373183的博客 207

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

leetcode1579- 保证图可完全遍历(稍微绕点弯的并查集)

leetcode1579- 保证图可完全遍历(稍微绕点弯的并查集)介绍并查集模板题目解题思路分析题目意图分析解题方法解题步骤代码效果展示 介绍 我的LeetCode主页,一题一题解 标签:并查集 1579. 保证图可完全遍历 难度 困难 1579. 保证图可完全遍历 https://leetcode-cn.com/problems/remove-max-number-of-edges-to-keep-graph-fully-traversable/ 并查集模板 在正式开始做题之前,首先提供一个并查集类,

Alivorth的博客 193

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

并查集之LeetCode1579. 保证图可完全遍历

并查集之LeetCode1579. 保证图可完全遍历前言一,1579. 保证图可完全遍历二,解题思路三, 代码总结 前言 算法之并查集 一,1579. 保证图可完全遍历 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typ

永远积极向上、永远热泪盈眶、永远豪情满怀、永远坦坦荡荡 343

LeetCode 1579 保证图可完全遍历

LeetCode 1579 保证图可完全遍历 题目链接 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何

旺崽的博客 1868

LeetCode 1579. 保证图可完全遍历(并查集)

文章目录1. 题目2. 解题 1. 题目 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。 请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。 如果从任何节点开始,A

Michael是个半路程序员 981

LeetCode 1579. 保证图可完全遍历【Python】

思路:并查集

"大梦三千秋的博客 346

Leetcode 1579. 保证图可完全遍历

解法:并查集+路径压缩 设置并查集 father[] ,father_2 对type = 3进行并查集操作,将边一条一条压入并查集中,然后对于在一个father中的边,不加入并查集,并统计数量为ans,即type=3可以删除的边。 father_2 保存一下father的结果,一会给type=2用 根据type = 1获得 father[] ,父亲儿子的信息(即并查集的信息),继续对type=1的边做并查集操作,如果两条边在一个并查集,则不加入,并统计数量为ans1, 同理对于father_2 ,

zcc的博客 446

LeetCode:1579. 保证图可完全遍历————困难

题目 1579. 保证图可完全遍历 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和

Kinght_123的博客 535

力扣题解-1579. 保证图可完全遍历(并查集)

利用并查集解决力扣题目:1579. 保证图可完全遍历

lpp 3291

LeetCode 1579 保证图可完全遍历 HERODING的LeetCode之路

Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和 Bob 都可以到达所有其他节点,

HERODING23的博客 373

leetcode 1579. 保证图可完全遍历

一道虚假的hard难度最小生成树题

昂昂累世士的博客 217

Leetcode每日一题:1579. 保证图可完全遍历

目录问题描述思路分析及代码实现 问题描述 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历。 类型 2:只能由 Bob 遍历。 类型 3:Alice 和 Bob 都可以遍历。 给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alic

嘤嘤的博客 261
上一篇: projectEuler problem 5.Smallest multiple
下一篇: LeetCode 107. 二叉树的层次遍历 II
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值