Codeforces Round #736 (Div. 2)
Problem A. Gregor and Cryptography
Statement:给定一个质数,求两个整数使得\(P\bmod a=P\bmod b\)。
\(5\leq P\leq 10^9\)
Solution:
答案显然为\(2,P-1\)。
Problem B. Gregor and the Pawn Game
Solution:
直接贪心即可,因为一次操作最多影响一个棋子,任意一次进军答案不会更劣。
Problem C. Web of Lies
Solution:
可以发现一个点能留下的充要条件是与它有直接连边的所有点都比它小,直接维护这个即可。
Problem D. Integers Have Friends
Statement:找到最大的区间\([i,j]\)存在整数\(m\ge 2\)使得\(A_i\bmod m=A_{i+1}\bmod m=\cdots=A_{j}\bmod m\)。
\(n\leq 10^5\)
\(A_i\leq 10^{18}\)
Solution:
考虑如何判断一个区间是否合法。
若区间中任意两个数之差\(\bmod m=0\)那么这个区间是合法的。
假设我们能快速求出任意两数之差,那么考虑如何能快速求出\(m\)。
可以发现\(m=\gcd(A_i-A_j,\cdots)\)。于是考虑双指针,当加入一个数的时候如何快速计算是否合法。
可以发现我们并不需要去算区间任意两数之差,只要计算相邻两数之差即可。那么先求出差分数组后问题转化成求区间\(\gcd>1\)的最大区间了。因为\(A_i\)互不相同,因此复杂度得以保证。
Problem E. The Three Little Pigs
Statement:求\(\sum_{i=1}^N\binom{3i}{x}\bmod P\)。
\(N\leq 10^6\)
Solution:
考虑用动态规划来进行转移。
记\(f(x,j) =\sum_{i=1}^{N-1}\binom{3i+j}{x}\),其中\(j\in [0,2]\),利用组合恒等式\(\sum_{i=0}^N\binom{i}{x}=\binom{N+1}{x+1}\)解方程递推即可。
Problem F1. Gregor and the Odd Cows (Easy)
Statement:给定\(n\)个点,其坐标均为偶数,求有多少个有序三元组使得其围成的三角形面积为偶数,其包含的格点个数(不含边上的点)为奇数。
\(n\leq 6000\)
Solution:
考虑Pick's Theorem,计算点阵中顶点在格点上的多边形面积公式有\(S=a+\frac{b}{2}-1\)。其中\(a\)表示其严格包含的点,\(b\)表示多边形落在格点边界上的点数。
那么由三角形面积坐标公式可知任意\(3\)点围成的面积都为偶数,那么\(b\)应该为\(4\)的倍数。接下来考虑一条边上有多少个整点。
可以发现对于两个点,其线段上有\(\gcd(|x_1-x_2|,|y_1-y_2|)-1\)个点。证明考虑将这条线段平移到原点,那么这条线段上第一个整点为\((\frac{|x_1-x_2|}{\gcd(|x_1-x_2|,|y_1-y_2|)},\frac{|y_1-y_2|}{\gcd(\cdots)})\),那么一直加上这个就可以发现是\(\gcd\)个。
由于\(\gcd(|x_1-x_2|,|y_1-y_2|)\in\{0,2\}\),也就是说原坐标是什么并不重要,我们只保留坐标对\(4\)取模的结果即可,枚举三点统计即可。

浙公网安备 33010602011771号