美橙专业建站,网站成立查询,温州手机建站模板,做电影下载网站D. Divide and Equalize
题意#xff1a;让一组数中的一个数除以一个因子#xff0c;一个数除以一个因子#xff0c;假如经过若干次操作后能够使数组所有数相等#xff0c;那么输出YES#xff0c;否则输出NO。
分析#xff1a;乘除因子#xff0c;那么实际上就是因子的…D. Divide and Equalize
题意让一组数中的一个数除以一个因子一个数除以一个因子假如经过若干次操作后能够使数组所有数相等那么输出YES否则输出NO。
分析乘除因子那么实际上就是因子的转移一个数乘上这个因子另一个数除以这个因子总的因子数不变。 要让所有数相等那么就要让所有因子能够整除n这样能够使所有因子能够平均分配给每一个数。 使用map记录所有因子个数遍历map验证整除即可。
#includeiostream
#includemap
using namespace std;
int main()
{int T;cinT;while(T--){int n;cinn;mapint,intq;for(int i1;in;i){int t;cint;for(int j2;jt/j;j){while(t%j0){q[j];t/j;}}q[t];}int f0;for(auto x:q){if(x.first1) continue;if(x.second%n!0) {f1;break;}}if(f1) coutNOendl;else coutYESendl;}
}