标签:连通性 阈值 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。