首页 > 其他分享 >CF1770C

CF1770C

时间:2024-01-22 14:44:25浏览次数:29  
标签:NO int long i1 mp 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;
}

标签:NO,int,long,i1,mp,CF1770C
From: https://www.cnblogs.com/Crazyouth/p/17980000

相关文章

  • 题解 CF1770C【Koxia and Number Theory】
    显然,如果存在\(a_i=a_j\),则一定无解。否则,考虑每一个\(2\sim50\)的正整数\(k\),如果原数组每个数对\(k\)取模后,每种余数都出现至少两次,则无解。因为此时无论如何选......