ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

leetcode1627 带阈值的图连通性

2021-04-29 11:33:48  阅读:156  来源: 互联网

标签:连通性 阈值 int leetcode1627 DSU vector res return find


思路:

埃氏筛法+并查集。

实现:

 1 class DSU
 2 {
 3     vector<int> p;
 4 public:
 5     DSU(int n)
 6     {
 7         p.resize(n);
 8         for (int i = 1; i < n; i++) p[i] = i;
 9     }
10     int find(int x)
11     {
12         if (p[x] == x) return x;
13         return p[x] = find(p[x]);
14     }
15     void uni(int x, int y)
16     {
17         x = find(x); y = find(y);
18         if (x != y) p[x] = y;
19     }
20 };
21 class Solution
22 {
23 public:
24     vector<bool> areConnected(int n, int threshold, vector<vector<int>>& queries)
25     {
26         vector<bool> v(n + 1, false);
27         DSU d(n + 1);
28         for (int i = threshold + 1; i <= n; i++)
29         {
30             if (v[i]) continue;
31             v[i] = true;
32             for (int j = 2 * i; j <= n; j += i)
33             {
34                 d.uni(i, j);
35                 v[j] = true;
36             }
37         }
38         vector<bool> res;
39         for (auto& q: queries)
40         {
41             if (d.find(q[0]) == d.find(q[1])) res.push_back(true);
42             else res.push_back(false);
43         }
44         return res;
45     }
46 };

标签:连通性,阈值,int,leetcode1627,DSU,vector,res,return,find
来源: https://www.cnblogs.com/wangyiming/p/14717294.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有