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;
    }
}
相关推荐
jiaguangqingpanda5 小时前
Day29-20260125
java·数据结构·算法
不会c+5 小时前
@Controller和@RequestMapping以及映射
java·开发语言
POLITE35 小时前
Leetcode 437. 路径总和 III (Day 16)JavaScript
javascript·算法·leetcode
June`5 小时前
FloodFill算法:图像处理与游戏开发利器
算法·深度优先·floodfill
wWYy.5 小时前
算法:四数相加||
算法
難釋懷5 小时前
解决状态登录刷新问题
java·开发语言·javascript
ytttr8735 小时前
基于MATLAB的三维装箱程序实现(遗传算法+模拟退火优化)
开发语言·matlab
新能源BMS佬大6 小时前
【仿真到实战】STM32落地EKF算法实现锂电池SOC高精度估算(含硬件驱动与源码)
stm32·嵌入式硬件·算法·电池soc估计·bms电池管理系统·扩展卡尔曼滤波估计soc·野火开发板
wen__xvn6 小时前
模拟题刷题2
算法
AI 菌6 小时前
DeepSeek-OCR 解读
人工智能·算法·计算机视觉·大模型·ocr