分析:最大公因数不为一的可以交换,而交换具有传递性。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. 不用ajax 后台的异步实现,js 怎么避免重复的异步操作(不问了,目前没办法后台做到,只能改造前端了)...
  2. 当了十年 IT 程序员,我转型做自动驾驶开发的这五年”_《新程序员》编辑部的博客-CSDN博客
  3. html中内联元素和块元素的区别、用法以及联系
  4. Java理论知识及面试题
  5. 《研磨设计模式》chap23 职责链模式chainOfResponsibility(1)模式简介
  6. Lecture 3 Divide and Conquer
  7. redis 槽点重新分配 集群_Redis群集部署详解
  8. utittest和pytest中mock的使用详细介绍
  9. Ubuntu18.04图片信息查看器
  10. 数据库管理(事务、ACID、并发、封锁、可串行化、隔离)
  11. 从零开始Android游戏编程(第二版) 第九章 游戏程序的生命周期
  12. max30102c语言程序,MAX30102基于STM32F103C8T6的程序源码
  13. 药易通显示rpc服务器不可用,药易通8825-8826日常问题语句归档教程方案.docx
  14. 十个程序员必备的网站推荐和较出名的国外程序员论坛
  15. Android Jetpack之DataBinding+ViewModel+LiveData+Room
  16. 嗨格式数据恢复的 10 种最佳替代方法
  17. vue怎么vw布局好用_Vue 实现 rem 布局或vw 布局的方法_晴枙_前端开发者
  18. 【Linux】uptime命令详解平均负载
  19. PS修图台式机装机方案
  20. 如果客户机同时得到多台dhcp服务器的ip地址_秘技,同时为三个女神装系统的方法...

热门文章

  1. 32位处理器中,通过汇编指令实现64位数据的加减运算
  2. 单纯形算法 Simplex Algorithm (一)
  3. 曾经。。。如今。。。
  4. .md即markdown文件常用语法
  5. 机器人编程语言python-机器人编程常用的四大语言
  6. opencv(匹配模式)五
  7. C++ 使用_beginthreadex创建线程、线程句柄(等待线程关闭)、线程id的作用(发送线程消息)
  8. 王树尧老师运筹学课程笔记 09 线性规划与单纯形法(单纯形表的应用)
  9. text-align:center居中
  10. spring操作transactionManager