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

wordpress搭建个人博客木卢seo教程

wordpress搭建个人博客,木卢seo教程,北京网址导航,招生网站怎么做2316. 统计无向图中无法互相到达点对数 中等 给你一个整数 n ,表示一张 无向图 中有 n 个节点,编号为 0 到 n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i] [ai, bi] 表示节点 ai 和 bi 之间有一条 无向 边。 请你返回 无法互相…

2316. 统计无向图中无法互相到达点对数

中等

给你一个整数 n ,表示一张 无向图 中有 n 个节点,编号为 0n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i] = [ai, bi] 表示节点 aibi 之间有一条 无向 边。

请你返回 无法互相到达 的不同 点对数目

示例 1:

在这里插入图片描述

输入:n = 3, edges = [[0,1],[0,2],[1,2]]
输出:0
解释:所有点都能互相到达,意味着没有点对无法互相到达,所以我们返回 0 。

示例 2:

img

输入:n = 7, edges = [[0,2],[0,5],[2,4],[1,6],[5,4]]
输出:14
解释:总共有 14 个点对互相无法到达:
[[0,1],[0,3],[0,6],[1,2],[1,3],[1,4],[1,5],[2,3],[2,6],[3,4],[3,5],[3,6],[4,6],[5,6]]
所以我们返回 14 。

提示:

  • 1 <= n <= 105
  • 0 <= edges.length <= 2 * 105
  • edges[i].length == 2
  • 0 <= ai, bi < n
  • ai != bi
  • 不会有重复边。

DFS

class Solution {// 统计联通分量 个数 和 大小// 然后递推,求出点对个数// 例如 4 1 2// 4 * 1 + 5 * 2public long countPairs(int n, int[][] edges) {List<Integer>[] g = new ArrayList[n];Arrays.setAll(g, e -> new ArrayList<>());for(int[] e : edges){int x = e[0], y = e[1];g[x].add(y);g[y].add(x);}boolean[] vis = new boolean[n];List<Integer> list = new ArrayList<>();for(int i = 0; i < n; i++){if(!vis[i]){int cnt = dfs(i, -1, g, vis);list.add(cnt);}}long res = 0l, sum = 0l;for(Integer e : list){res += e * sum;sum += e;}return res;}private int dfs(int x, int fa, List<Integer>[] g, boolean[] vis){int res = 1;vis[x] = true;for(int y : g[x]){if(y != fa && !vis[y])res += dfs(y, x, g, vis);}return res;}
}

并查集

统计连通块大小可以用并查集做

class Solution {// 统计联通分量 个数 和 大小public long countPairs(int n, int[][] edges) {UF uf = new UF(n);for(int[] e : edges){uf.union(Math.max(e[0], e[1]), Math.min(e[0], e[1]));}Map<Integer, Integer> map = new HashMap<>();for(int i = 0; i < n; i++){map.merge(uf.find(i), 1, Integer::sum);}long res = 0l, sum = 0l;for(int x : map.keySet()){res += (long)map.get(x) * sum;sum += map.get(x);}return res;}
}/* ------------ 并查集模版 ------------ */
class UF {int[] parent; // par数组用来存储根节点,par[x]=y表示x的根节点为yint[] size; // size[i]表示以i为根的联通块大小int count; // count表示连通块个数,每次调用union时count-1public UF(int n) {this.count = n;parent = new int[n];size = new int[n];for (int i = 0; i < n; i++) {parent[i] = i;size[i] = 1;}}public void union(int x, int y) {int rootx = find(x);int rooty = find(y);if (rootx == rooty) return;else//不是同一个根,即不在同一个集合,就合并parent[rootx] = rooty;size[rooty] += size[rootx];count--;}public int find(int x) {// 路径压缩if (parent[x] != x) {parent[x] = find(parent[x]);}return parent[x];}
}
http://www.yayakq.cn/news/632966/

相关文章:

  • 网站被挂马无法访问国内设计师个人网站
  • 机关网站制度建设湖南网站模板建站
  • 网站运营问题有没有网址啊给一个
  • 为什么四川省建设厅网站打不开纯静态网站
  • 网站开发费属于研发费用吗百度搜索引擎网址格式
  • 设计图网站建设工程合同范本工程施工合同范本
  • 淄博网站制作营销有免费的服务器吗
  • 网站建设承揽合同正规网站制作价格
  • 做视频背景音乐专用网站怎么在百度上设置自己的门店
  • 延庆区加工网站建设推广上海网站建设 中华企业录
  • 湖北随州住房和城乡建设部网站企业网站建设费用定金怎么做账
  • 企业网站建设骆诗设计app手机软件开发公司
  • 汕头地区做网站的公司注册代理免费
  • 网站建设中企dw用层还是表格做网站快
  • 仿牌网站流量vs网站开发建表怎么肩啊
  • 杭州滨江网站建设公司山西笑傲网站建设推广
  • 做医药商城网站的公司吗wordpress t1主题
  • 东莞市研发网站建设公司网络营销推广可以理解为
  • 打开国外网站很慢怎么办黑糖不苦建设的网站
  • 做网站推广价格家具定制网站
  • 开网站的宣传图片怎么做jsp网站开发登陆
  • 怎么做网站关键字搜索上海劳务市场招聘信息查询
  • 国家重大建设项目库网站seo公司上海
  • 网站建设电脑物流网络结构
  • 2016年网站建设方案ppt二手网站设计与建设
  • 深圳宝安商城网站建设公司备案变更网站信息
  • 广西智能网站建设哪家好百度推广代理
  • 网站栏目及内容为什么网站要域名
  • 经典网站设计网站店面设计费计入什么科目
  • 深圳网站建设好静态网站怎么制作