1 条题解

  • 0
    @ 2026-5-2 11:06:10

    注意到若 x=p×yx=p\times y,则 xxyy 的质因数个数必然相差一。任意两个同一颜色的元素 xxyy 不能满足这个条件,即任意两个同一颜色的元素 xxyy 的质因数个数之差不能是 11

    将数组中的数分解质因数,然后按照质因数个数的奇偶性分成两类涂色即可。

    #include<bits/stdc++.h>
    using namespace std;
    int pf(int x){//质因数个数
    	int cnt,now=2;
    	while(x!=1){
    		if(x%now==0)cnt++,x/=now;
    		else now++;
    		if(now*now>x)now=x;
    	}
    	return cnt;
    }
    int main(){
    	ios::sync_with_stdio(0);cin.tie(0);
    	int n;cin>>n;
    	for(int i=0;i<n;i++){
    		int a;cin>>a;
    		if(pf(a)%2)cout<<1<<" ";
    		else cout<<2<<" ";
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    10307
    时间
    1000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者