D. Divide and Equalize--Codeforces Round 903 (Div. 3)

D. Divide and Equalize

题意:让一组数中的一个数除以一个因子,一个数除以一个因子,假如经过若干次操作后能够使数组所有数相等,那么输出YES,否则输出NO。

分析:乘除因子,那么实际上就是因子的转移,一个数乘上这个因子,另一个数除以这个因子,总的因子数不变。

要让所有数相等,那么就要让所有因子能够整除n,这样能够使所有因子能够平均分配给每一个数。

使用map记录所有因子个数,遍历map验证整除即可。

cpp 复制代码
#include<iostream>
#include<map>
using namespace std;
int main()
{
    int T;cin>>T;
    while(T--){
        int n;
        cin>>n;
        map<int,int>q;
        for(int i=1;i<=n;i++)
        {
            int t;cin>>t;
            for(int j=2;j<=t/j;j++)
            {
                while(t%j==0){
                    q[j]++;
                    t/=j;
                }
            }
            q[t]++;
        }
        int f=0;
        for(auto x:q){
            if(x.first<=1) continue;
            if(x.second%n!=0) {f=1;break;}
        }
        if(f==1) cout<<"NO"<<endl;
        else cout<<"YES"<<endl;
    }
}
相关推荐
CoovallyAIHub8 分钟前
基于YOLO集成模型的无人机多光谱风电部件缺陷检测
深度学习·算法·计算机视觉
CoovallyAIHub8 分钟前
几十个像素的小目标,为何难倒无人机?LCW-YOLO让无人机小目标检测不再卡顿
深度学习·算法·计算机视觉
江公望14 分钟前
Qt QML实现无边框窗口
开发语言·qt
深耕AI16 分钟前
【MFC典型类和函数:CString的字符串魔法与Afx全局函数的便利店】
c++·mfc
怀旧,19 分钟前
【C++】19. 封装红⿊树实现set和map
linux·c++·算法
凯子坚持 c28 分钟前
Redis核心通用命令深度解析:结合C++ redis-plus-plus 实战指南
c++·redis·log4j
往事随风去29 分钟前
Redis的内存淘汰策略(Eviction Policies)有哪些?
redis·后端·算法
秦禹辰37 分钟前
宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问
开发语言·后端·golang
黄焖鸡能干四碗43 分钟前
智慧教育,智慧校园,智慧安防学校建设解决方案(PPT+WORD)
java·大数据·开发语言·数据库·人工智能
神里流~霜灭1 小时前
(C++)数据结构初阶(顺序表的实现)
linux·c语言·数据结构·c++·算法·顺序表·单链表