leetcode 2316.统计无向图中无法互相到达点对数
思路:并查集
其实就是连通块的一个变形题目,一般的连通块题目要我们求的是连通个数,或者能不能到达,这里反过来问了。
首先,我们用dfs也是可以做到的,在dfs中统计每一个连通块的个数,然后用乘法原理相乘,累计相加就得到结果了。
这里并查集思路差不多,只是用了并查集来找连通块而已。(这里并查集多了一个权值,用来统计每个并查集的点的个数)
注意:作者在统计多少对点到达不了的时候不会统计。这里看题解给出了思路,就是对于每一个连通块来说,连通块里面的点和另一个连通块里面的点是互不联通的,所以这里可以用乘法原理相乘,接着,我们再加入累加器当中,然后让点的个数合并成这两个连通块一共的点数,再让下一个连通块乘以这些点数,因为下一个连通块的每一点又与这两个连通块的每一个点都不相通,所以继续这样下去,累加,计数....
上代码:
class Solution {
public:
int f[100020];
int zhi[100020];
int find(int u){if(f[u]==u)return u;elsereturn f[u]=find(f[u]);
}
void unit(int x,int y){int s=find(x);if(find(y)==s)return;else{zhi[find(y)]+=zhi[s];f[s]=find(y);}
}long long countPairs(int n, vector<vector<int>>& edges) {for(int i=0;i<n;i++){f[i]=i;zhi[i]=1;}for(int i=0;i<edges.size();i++){int x=edges[i][0];int y=edges[i][1];unit(x,y);}long long res=0;long long size=0;for(int i=0;i<n;i++){if(f[i]==i){res+=zhi[i]*size;//size+=zhi[i];//需要学习的地方}}return res;}
};
相关文章:
leetcode 2316.统计无向图中无法互相到达点对数
思路:并查集 其实就是连通块的一个变形题目,一般的连通块题目要我们求的是连通个数,或者能不能到达,这里反过来问了。 首先,我们用dfs也是可以做到的,在dfs中统计每一个连通块的个数,然后用乘…...
WPS二次开发系列:如何使用WPS返回的FileUri
作者持续关注 WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 目录 什么是FileUri 在SDK中的使用场景 打开文档时…...
python删除一个文件夹所有文件
在Python中,可以使用os模块来删除一个文件夹中的所有文件,但保留文件夹本身。以下是一个简单的例子: import osdef delete_files_in_folder(folder_path):for filename in os.listdir(folder_path):file_path os.path.join(folder_path, fi…...
overflow:hidden对解决外边距塌陷的个人理解
外边距塌陷: 子元素的上外边距大于父元素的上外边距,导致边距折叠,取两者之间最大值,即子元素外边距,导致父元素上外边距失效。 解决办法:在父元素样式添加overflow:hidden;或者border:1px solid black;(不…...
【linux软件基础知识】- 文件的概念:Linux 中的文件
Linux 中的文件 在 Linux 中,文件是存储在存储设备(例如硬盘驱动器或固态驱动器)上的数据项的集合。 文件被组织为字节序列,并由文件系统中的唯一名称来标识。 以下是 Linux 中文件的一些关键特征: 字节序列:Linux 中的文件被视为字节序列。 每个字节可以表示一个字符…...
Context capture/Pix4Dmapper/AutoCAD/CASS/EPS软件的安装流程与使用方法;土方量计算;无人机摄影测量数据处理
目录 专题一 无人机摄影测量技术应用现状及其发展 专题二 基本原理和关键技术讲解 专题三 无人机影像外业数据获取 专题四 数据处理环境建立与软件熟悉 专题五 GNSS数据土方量计算 专题六 基于无人机影像数据的正射影像制作 专题七 基于无人机影像数据的三维模型制作 专…...
算法系列之堆排序实践哪家强
1.概念 堆排序是一种树形选择排序,是对简单选择排序的有效改进和优化。 堆(heap),这里所说的堆是数据结构中的堆(对应于算法),而不是内存模型中的堆(数据存储形式,还比如:栈&#…...
01-win10安装Qt5
Qt5安装教程 下载Qt5官网下载(下载很慢)镜像网站下载(有些版本没有资源)迅雷下载(推荐)百度网盘下载(推荐)安装Qt5下载Qt5 官网下载(下载很慢) 【注意】:官网下载非常慢,没有镜像下载时常20+ Qt 官网有一个专门的资源下载网站,所有的开发环境和相关工具都可以从这…...
mybatis使用及配置相关,仅做个人记录
在spring-boot项目中mybatis的配置文件在yml文件中,并没有mybatisconfig.xml文件 yml文件中配置:(来源:https://blog.51cto.com/u_16213723/8747999) mybatis:# XML文件路径,可配置多个,逗号分…...
【STM32 |新建一个工程】基于标准库(库函数)新建工程
目录 STM32开发方式 库函数文件夹 建工程步骤 库函数工程建立 建立工程总结 STM32开发方式 目前stm32的开发方式主要有基于寄存器的方式、基于标准库的方式(库函数的方式)、基于HAL库的方式基于库函数的方式是使用ST官方提供的封装好的函数&…...
C#利用ClearScript执行Javascript脚本
1,新建.netframework winform工程 2,打开nuget程序包管理界面,安装Microsoft.ClearScript.V8,Microsoft.ClearScript.V8.Native.win-x64. 3,编写Javascript脚本,另存为demo.js function testFunc(t) {return t "…...
住宅ip与数据中心ip代理的区别是什么
代理通常意味着“替代”。它是用户设备和目标服务器之间的中介,允许在不同的IP地址下上网。代理ip根据来源分类可分住宅ip与数据中心ip,二者之间区别是什么呢? 住宅ip是由互联网服务提供商(ISP)提供给家庭的IP地址。出于这个原因,…...
【计算机网络】数据链路层的功能
数据链路层的基本功能: 封装成帧透明传输差错检测 数据链路层使用的信道主要有两种 点对点信道——PPP协议广播信道——CSMA/CD协议(有线局域网)、CSMA/CA协议(无线局域网) 数据链路层所处的地位 从图中可以看出,数据从主机H1送到主机H2需要在路径中…...
信号线电路串联电阻
简介 两芯片端串联一个电阻,在靠近发送端或接收端。 一般串联的是0Ω, 22Ω, 33Ω的电阻,也可能更大。 目的 1.解决信号反射问题,吸收反射。 问题如下: pcb单端阻抗过大,而接收端是cmos输入,使得接收端…...
手机App防沉迷系统-算法
import java.util.*; public class Main{public static void main(String[] args){Scanner innew Scanner(System.in);int nInteger.parseInt(in.nextLine());//已注册app列表List<Log> listnew ArrayList<>();for(int k0;k<n;k){String[] strin.nextLine().spl…...
day3_prefixSum
一、前缀和技巧 重点 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和 个人理解;预计算,空间换时间 1.(一维数组的前缀和)303区域和检索-数组不可变 获取闭区间值 [left,right] -> preSum[right 1] - preSum[left],其中preSum[right…...
Redis过期删除策略和内存淘汰策略有什么区别?
Redis过期删除策略和内存淘汰策略有什么区别? 前言过期删除策略如何设置过期时间?如何判定 key 已过期了?过期删除策略有哪些?Redis 过期删除策略是什么? 内存淘汰策略如何设置 Redis 最大运行内存?Redis 内…...
【计算机网络】物理层传输介质 习题3
双绞线是用两根绝缘导线绞合而成的,绞合的目的是( )。 A.减少干扰 B.提高传输速度 C.增大传输距离 D.增大抗拉强度 在电缆中采用屏蔽技术带来的好处主要是( ) A.减少信号衰减 B. 减少电磁干扰辐射 C.减少物理损坏 D. 减少电缆的阻抗 利用一根同轴电缆互连主机构成…...
智能座舱语音助手产品方案
一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我, 专属于自己的座驾: 家…...
经典面试题之滑动窗口专题
class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {// 长度最小的子数组 // 大于等于 targetint min_len INT32_MAX;// 总和int sum 0;int start 0; // 起点for(int i 0; i< nums.size(); i) {sum nums[i];while(sum > targe…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
