分析:最大公因数不为一的可以交换,而交换具有传递性。a和b可以交换,b和c可以交换则a和c也能交换。所以可交换的集合符合并查集性质。因为遍历n的平方合并会超时,可以采用分解质因数并合并根据公因数。

题目链接在此+++++++++++++++++++++

const int N = 1e5+10;
class Solution {private:int f[N];
public:int find (int u){if (u!=f[u]) f[u]=find(f[u]);return f[u];}void merge(int a,int b){int x = find(a),y = find(b);if (x==y) return;f[x] = y;}bool gcdSort(vector<int>& nums) {vector<int> mh(nums);sort (mh.begin(),mh.end());for (int i=0;i<N;i++) f[i] = i;for (int x:nums){int k = x;for (int i=2;i<=k/i;i++){if (k%i==0){while (k%i==0) k/=i;merge(x,i);}}if (k>1) merge(x,k);}for (int i=0;i<nums.size();i++){if (nums[i]==mh[i]) continue;if (find(nums[i])!=find(mh[i])) return false;}return true;}};

力扣第257周赛T4数组的最大公因数排序(并查集+质因数分解)相关推荐

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

    题目:1579. 保证图可完全遍历 Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边: 类型 1:只能由 Alice 遍历. 类型 2:只能由 Bob 遍历. 类型 3: ...

  2. 20201221:力扣220场周赛题解

    力扣220场周赛 题目 思路与算法 代码实现 写在最后 题目 重新格式化电话号码 删除子数组的最大得分 跳跃游戏 VI 思路与算法 简单的string操作,用cpp或者java均可. 使用一个map来 ...

  3. 20201007:力扣209周周赛题解记录(上)

    力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...

  4. 20200910:力扣204周周赛题解上(Java/Python/Cpp)

    力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...

  5. 20200819:力扣202周周赛题解记录

    力扣202周周赛题解记录 题目一:[存在连续三个奇数的数组](https://leetcode-cn.com/problems/three-consecutive-odds/) 代码实现 题目二:[使 ...

  6. 20200815:力扣201周周赛题解记录下

    力扣201周周赛题解记录下 题目 思路与算法 代码实现 题目 和为目标值的最大数目不重叠非空子数组数目 1547. 切棍子的最小成本 在这里插入图片描述 思路与算法 第3题还是一个简单的模拟,用set ...

  7. 20200705:力扣196周周赛上

    力扣196周周赛上 题目 思路与算法 代码实现 复杂度分析 判断能否形成等差数列 题目 所有蚂蚁掉下来前的最后一刻 请注意仔细看给的示例: 思路与算法 题目给定了数组长度大于等于2,也就是说,先排序, ...

  8. 20200701:力扣194周周赛上

    力扣194周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 数组异或操作 保证文件名唯一 注意这个示例: 思路与算法 半个月没写博客了,太懒了,不能再拖延了,今天开始全部带上C++和Java的双 ...

  9. 20200616:力扣193周周赛上

    力扣193周周赛上 题目 思路与算法 代码实现 写在最后 题目 一维数组的动态和 不同整数的最少数目 思路与算法 第一题没啥好说的,动态和,dp最基础的东西. 第二题主要是一个贪心的过程,既然要剩下的 ...

最新文章

  1. 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
  2. PHP的数据类型、浮点型比较
  3. .NET编程-----------------------Web.config配置文件详解
  4. VScode 搭建 django 开发环境(Win Python3.71 django1.11.11)
  5. 计算机应用技术与英语相关性,浅析计算机应用的技术专业的计算机专业英语的教学改进.doc...
  6. java程序员面试题大全含答案(2018--2019)
  7. 美国的卫星导航系统服务器,中国的北斗卫星和美国的gps到底哪个更厉害?
  8. 东芝300d硒鼓清零代码_东芝300d怎么清?
  9. 天气预报本地准时宝隐私政策
  10. JavaCV本地视频流通过帧图片添加文本进行字幕合成
  11. u3d快速入门图文教程
  12. Mac下如何重启SSH
  13. python训练营 朋友圈点赞_python3 爬虫学习:自动给你心上人的微博点赞(三)
  14. 下列为非法的C语言转义字符的项目是,非法的C语言转义字符是()。
  15. vue 打印出现多余空白页的情况
  16. 商用计算机 报价,ASUS - 台式机 - 商用台式电脑配置价格
  17. 首例共享单车身故赔偿警示,骑车时想过谁能为你的安全买单吗?
  18. 怎么引流微信 ,QQ,抖音,淘宝,微博,Facebook好友
  19. 数学优化入门:凸优化
  20. 个人学习过程(从2017年8月9开始写)

热门文章

  1. Fusion 360教程合集27部
  2. iap内购 无法连接到 iTunes Store (拿坑砸自己)
  3. RFC6749-OAuth2.0
  4. 设计模式 命令模式 之 管理智能家电
  5. Linux系统日志采集
  6. jenkins 安装以及Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决403以及如何关闭Jenkins杀掉所有衍生进程
  7. three.js 常见光源类型
  8. 总结:Prometheus匹配模式
  9. Discarded invalid param(s) “myname“ when navigati
  10. 字符串的split方法(),把字符串分割为数组