首页 > 其他分享 >【CF1656H】Equal LCM Subsets

【CF1656H】Equal LCM Subsets

时间:2024-07-12 13:23:33浏览次数:12  
标签:CF1656H gcd Subsets Equal alpha LCM

【CF1656H】Equal LCM Subsets

题意

给定集合 \(A\) 和 \(B\),从中选择两个子集 \(A'\subseteq A,B'\subseteq B\) 满足 \(\operatorname{lcm}(A')=\operatorname{lcm}(B')\) 。

满足 \(\lvert A\rvert,\lvert B\rvert\le 10^3,A,B\le 4\times 10^{35}\)。

思路

考虑将数 \(A_i\) 分解为 \(\prod\limits_{j=1}^{k}{p_j}^{\alpha_j}\),其中 \(p\in \operatorname{prime}\)。如果对于一个 \(p_j\) 的 \(\alpha_j\) 大于 \(B\) 中所有的 \(p_j\) 的 \(\alpha_j\),那么 \(A_i\) 必须被删除,对 \(B\) 也同理。

通过上面的分析显然可以得到在满足一下情况时才会将 \(A_i\) 删除:

\[\gcd\limits_{i=1}^m \dfrac{A_x}{\gcd(A_x,B_i)}>1 \]

因为需要支持将 \(B_i\) 进行单点删除,所以可以使用线段树进行快速维护。具体的,线段树维护 \(\dfrac{A_x}{\gcd(A_x,B_i)}\) 的值,时间复杂度为 \(O(n^2(\log W+\log n))\)。

code

标签:CF1656H,gcd,Subsets,Equal,alpha,LCM
From: https://www.cnblogs.com/liudagou/p/18298162

相关文章

  • G. The Great Equalizer
    原题链接题解每次操作都会是排序后的元素差值减一,所以答案为初始序列最大值加上最大差值用STL的multiset维护差值和序列值code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[200005];voidsolve(){intn;cin>>n;multiset<ll>s......
  • 使用 LCM 加速生图
    LCM是什么在人工智能领域,图像生成技术一直是研究的热点。然而,尽管取得了显著进展,现有技术如StableDiffusion等在生成高质量图像时仍面临速度瓶颈。多步迭代采样过程不仅耗时,而且增加了推理成本,限制了这些技术在实时应用场景中的潜力。为了解决上述问题,清华大学交叉信息研究......
  • C# Equals 和 GetHashCode 方法认知及Distinct方法解析
    参照:生成C#Equals和GetHashCode方法重写-VisualStudio(Windows)|MicrosoftLearn如何修改字符串内容-C#|MicrosoftLearn在C#中,Equals 和 GetHashCode 方法用于对象的比较和哈希值计算。它们在值类型和值类型的行为上有所不同。值类型(ValueTypes)Equals......
  • **CodeForces CF1928B Equalize题解**
    ok兄弟们,今天本蒟蒻来做一篇小小的题解Equalize题面翻译有一个给定的长度为$n$的数列$a$,现在加上一个排列$b$,即$c_i=a_i+b_i$。现在求对于所有可能的$b$,$c$中出现最多的数的出现次数的最大值。translateby@UniGravity.题目描述Vasyahastwohobbies—addingpe......
  • Equalize
    Equalize题面翻译有一个给定的长度为\(n\)的数列\(a\),现在加上一个排列\(b\),即\(c_i=a_i+b_i\)。现在求对于所有可能的\(b\),\(c\)中出现最多的数的出现次数的最大值。translateby@UniGravity.题目描述Vasyahastwohobbies—addingpermutations$^{\dagger}$......
  • 在 Microsoft SQL Server 2012 中,可以使用 sqlcmd 命令行工具来执行 Transact-SQL 脚
    sqlcmd实用工具-SQLServer|MicrosoftLearn在MicrosoftSQLServer2012中,可以使用sqlcmd命令行工具来执行Transact-SQL脚本和命令。这个工具提供了一种在命令行下管理和操作SQLServer的便捷方式。以下是一些sqlcmd命令的实例用法:连接到SQLServer实例bashC......
  • 关于自定义unordered_set\unordered_map中Hash和KeyEqual:函数对象和lambda表达式简单
    以unordered_set为例,首先在cppreference中查看其模板定义:可以看到Hash类默认是std::hash<Key,KeyEqual类似,本文将Hash以函数对象写出,将KeyEqual以lambda写出。classhashvec{ public: size_toperator()(constvector<int>&vec)const{ returnhash<int>()(vec[0])+hash......
  • 用质因数求解最大公约数(gcd)和最小公倍数(lcm)
    用质因数求解最大公约数(gcd)思路分析:1、质因数:(素因数或质因子)他指的是能整除给定正整数的质数。例如:36可以分解为223*3,其中2和3就是质因数。2、质因数求解最大公约数:对每个数进行质因数分解;找出所有数的共有质因数,并取每个共有质因数的最低次幂;将这些最低次幂的质因......
  • LeetCode 1013. Partition Array Into Three Parts With Equal Sum
    原题链接在这里:https://leetcode.com/problems/partition-array-into-three-parts-with-equal-sum/description/题目:Givenanarrayofintegers arr,return true ifwecanpartitionthearrayintothree non-empty partswithequalsums.Formally,wecanpartition......
  • CF 1968 F. Equal XOR Segments (*1800) 思维
    CF1968F.EqualXORSegments(*1800)思维题意:给你一个长度为\(n\)的数组,如何可以把数组分成\(k(k>1)\)组,并且使得每组的异或和相等,那么这个数组就是完美的。现在给你\(q\)组询问,每次给你\(l,r\)。请你判断\(a_l\)到\(a_r\)之间是否是完美的。思路:对于每次询问......