题目:Divide and Equalize
  • 板块题目总版
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/15 08:39
  • 上次更新2024/7/16 18:58:56
查看原帖
题目:Divide and Equalize
255162
封禁用户楼主2024/7/15 08:39

蜜汁超时,求条调

#include<bits/stdc++.h>
using namespace std;
int a[100000],b[1000000],m,t,k;
int n;
int  x;
bool  y;
float z;
void f(int x) {
	int i=2;
	while(i<=x) {
		if(x%i==0) {
			b[i]++;
			x/=i;
		} else i++;
	}

	return ;
}
int read() {
	int x = 0, w = 1;
	char ch = 0;
	while (ch < '0' || ch > '9') {
		if (ch == '-') w = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9') {
		x = x * 10 + (ch - '0');
		ch = getchar();
	}
	return x * w;
}
int main() {
	t=read();
	for(int o=1; o<=t; o++) {
		y=0;
		memset(b,0,sizeof(b));
		n=read();
		for(int i=1; i<=n; i++) {
			a[i]=read();
			f(a[i]);
			x=max(x,a[i]);

		}
		for(int j=1; j<=x; j++) {
			if(b[j]%n!=0) {
				y=1;
				printf("NO\n");
				break;
			}
		}
		if(y==0) {
			printf("YES\n");
		}
	}
	return 0;
}
2024/7/15 08:39
加载中...