CF1770C

分析

不难发现,由于 \(x>0\),所以当出现两个相同数的时候一定是 NO。再然后,发现对于一个数 \(k\),记 \(re_i\) 表示 \(a\) 中模 \(k\)\(i\) 的数的个数,若对于所有的 \(0\le i<k\),都有 \(re_i>1\),那么不管你加多少,必定有至少 \(2\)\(k\) 的倍数,不互质,因此也是 NO。剩下的就是 YES 了。

AC Code

#include <bits/stdc++.h>
using namespace std;
#define int long long
map<int,int> mp,cnt;
int a[110]; 
signed main()
{
	int t;
	cin>>t;
	while(t--)
	{
		mp.clear();
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			mp[a[i]]++;
		}
		for(int i=1;i<=n;i++)
		{
			if(mp[a[i]]>1)
			{
				cout<<"NO"<<endl;
				goto E;
			}
		}
		for(int i=2;i<=n;i++)
		{
			cnt.clear();
			for(int j=1;j<=n;j++)
			{
				cnt[a[j]%i]++;
			}
			for(int j=0;j<i;j++)
			{
				if(cnt[j]<=1)
				{
					goto F;
				}
			}
			cout<<"NO"<<endl;
			goto E;
			F:;
		}
		cout<<"YES"<<endl;
		E:;
	}
	return 0;
}
posted @ 2024-01-22 14:38  Crazyouth  阅读(6)  评论(0编辑  收藏  举报