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;
    }
}
相关推荐
csbysj2020几秒前
JSON.parse() 方法详解
开发语言
奔波霸的伶俐虫3 分钟前
redisTemplate.opsForList()里面方法怎么用
java·开发语言·数据库·python·sql
Swift社区6 分钟前
LeetCode 469 凸多边形
算法·leetcode·职场和发展
chilavert3188 分钟前
技术演进中的开发沉思-298 计算机原理:算法的本质
算法·计算机原理
yesyesido14 分钟前
智能文件格式转换器:文本/Excel与CSV无缝互转的在线工具
开发语言·python·excel
Aaron158814 分钟前
全频段SDR干扰源模块设计
人工智能·嵌入式硬件·算法·fpga开发·硬件架构·信息与通信·基带工程
_200_16 分钟前
Lua 流程控制
开发语言·junit·lua
环黄金线HHJX.17 分钟前
拼音字母量子编程PQLAiQt架构”这一概念。结合上下文《QuantumTuan ⇆ QT:Qt》
开发语言·人工智能·qt·编辑器·量子计算
王夏奇17 分钟前
python在汽车电子行业中的应用1-基础知识概念
开发语言·python·汽车
He_Donglin18 分钟前
Python图书爬虫
开发语言·爬虫·python