首页 > 其他分享 >题解 CF1770C【Koxia and Number Theory】

题解 CF1770C【Koxia and Number Theory】

时间:2022-12-31 11:11:33浏览次数:43  
标签:cnt Theory 题解 ll 50 CF1770C rep mod

显然,如果存在 \(a_i=a_j\),则一定无解。

否则,考虑每一个 \(2\sim 50\) 的正整数 \(k\),如果原数组每个数对 \(k\) 取模后,每种余数都出现至少两次,则无解。因为此时无论如何选取 \(x\),都至少有两个数是 \(k\) 的倍数。

下面证明充分性。\(k > 50\) 的情况是无意义的,因为至少需要 \(2k > n\) 个数才能无解。对于每一个 \(k\),找到一个数 \(y\) 使得对 \(k\) 取模余 \(y\) 的数不超过一个,那么 \(x\equiv -y\pmod{k}\) 的 \(x\) 均符合题意。由于 \(k\) 有有限个,可以使用中国剩余定理解得 \(x\)。

// Problem: Koxia and Number Theory
// Contest: Codeforces
// URL: https://m2.codeforces.com/contest/1770/problem/C
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//By: OIer rui_er
#include <bits/stdc++.h>
#define rep(x,y,z) for(ll x=(y);x<=(z);x++)
#define per(x,y,z) for(ll x=(y);x>=(z);x--)
#define debug(format...) fprintf(stderr, format)
#define fileIO(s) do{freopen(s".in","r",stdin);freopen(s".out","w",stdout);}while(false)
using namespace std;
typedef long long ll;
const ll N = 105;

ll T, n, a[N], cnt[N];
template<typename T> void chkmin(T& x, T y) {if(x > y) x = y;}
template<typename T> void chkmax(T& x, T y) {if(x < y) x = y;}

int main() {
	for(scanf("%lld", &T); T; T--) {
		scanf("%lld", &n);
		rep(i, 1, n) scanf("%lld", &a[i]);
		sort(a+1, a+1+n);
		ll m = unique(a+1, a+1+n) - a - 1;
		if(m < n) puts("NO");
		else {
			ll ok = 1;
			rep(mod, 2, 50) {
				rep(i, 0, mod-1) cnt[i] = 0;
				rep(i, 1, n) ++cnt[a[i]%mod];
				ll now = 0;
				rep(i, 0, mod-1) now |= cnt[i] <= 1;
				ok &= now;
			}
			puts(ok ? "YES" : "NO");
		}
	}
	return 0;
}

标签:cnt,Theory,题解,ll,50,CF1770C,rep,mod
From: https://www.cnblogs.com/ruierqwq/p/CF-1770C.html

相关文章

  • 【题解】P5574 [CmdOI2019]任务分配问题
    stocmd学长orz题意P5574[CmdOI2019]任务分配问题给定一个长度为\(n\)的排列,试将它分成\(k\)段,使得每段的顺序对数量之和最小。\(n\leq2.5\times10^4,k\l......
  • 【题解】P1912 [NOI2009] 诗人小G
    题意多测。给定\(n\)个字符串和一个常数\(L\),试将这些字符串分成若干组,使得:令\(len(i)\)为第\(i\)个字符串的长度,则每组字符串的\(|\sum\limitslen(i)-L|\)......
  • 【题解】P3158 [CQOI2011]放棋子
    兄弟们,我起了,一日之计在于晨呐。题意P3158[CQOI2011]放棋子有一个\(n\)行\(m\)列的棋盘和\(c\)种颜色的棋子,每种棋子有\(a_i\)个。要求不同颜色的棋子不能放......
  • HDU 6801 Game on a Circle 题解 (推式子,多项式)
    题目链接首先注意到我们对这个环的扫描是一轮一轮进行的,每轮都会从左到右对每个没被删除的元素以p的概率删除。如果我们能对每个\(t(t\in[0,\infin],t是整数)和i\)求出c......
  • Leetcode面试高频题分类刷题总结及题解(更新中)
    原文链接:Leetcode面试高频题分类刷题总结排序类(Sort)基础知识:快速排序(QuickSort),归并排序(MergeSort)的原理与代码实现。需要能讲明白代码中每一行的目的。快速排序时间......
  • 【题解】P3515 [POI2011]Lightning Conductor(二分栈/分治优化DP)
    [POI2011]LightningConductor题面翻译给定一个长度为\(n\)的序列\(\{a_n\}\),对于每个\(i\in[1,n]\),求出一个最小的非负整数\(p\),使得\(\forallj\in[1,n]\),都......
  • 本博客提供的题解仅供学习,请勿抄袭代码
    近日,发现有部分同学翻取博客上的题解程序复制提交的抄袭行为;在此声明:本博客的代码仅供大家学习参考,对于自身还未学习到对应知识点的同学,请先完善自身基础知识的学习,当且仅......
  • 洛谷P2296 [NOIP2014 提高组] 寻找道路 题解
    题目链接:P2296[NOIP2014提高组]寻找道路-洛谷|计算机科学教育新生态(luogu.com.cn)好了,话不多说上代码:1#include<bits/stdc++.h>2usingnamespacestd;3......
  • Ynoi2019模拟赛题解
    \(Ynoi2019\)模拟赛题解前言:第一次做\(Ynoi\)还是有被离谱到的,我从来没有做到过这么卡常的题目,我到现在\(T1\)都还是\(70\)分,\(lxl\)毒瘤名不虚传啊。但是不得不说,\(Ynoi......
  • 【题解】P1973 [NOI2011] NOI 嘉年华
    yyc学长说是典题,就记一下。题意给出\(n\)个区间,试在丢弃一些区间后,把区间分成两部分,使得不存在同时被两部分中的区间覆盖的位置,求:最终包含区间数较小的部分的区间......