首页 > 其他分享 >arc137

arc137

时间:2024-08-16 15:04:30浏览次数:10  
标签:arc137 gcd 1500 我们 leq cdots 素数

a:
有点神经
首先贪心让y尽可能大,x尽可能小,那么我们用两层循环,y从大往小枚举,x从小往大枚举,再大力剪下枝,根据质数的稠密性,这个复杂度是有保证的。不过自己的感觉也大差不差
by 官方

自 \(\gcd(L,L+1)=1\) 起,总有一个解。

我们只需按 \((y-x)\) 的递减顺序尝试 \(L \leq x , y \leq R\) 的所有配对 \((x,y)\) ,并在得到 \(\gcd(x,y)=1\) 时打印 \((y-x)\) 。

这种方法的正确性显而易见,让我们来估算一下其复杂性。我们将尝试 \(O(K^2)\) 对,其中 \(K\) 是 \(R-L\) 与答案的差。考虑到计算 gcd 所需的时间,总复杂度为 \(O(K^2 \log R)\) ,因此如果我们能证明 \(K\) 是小数,那么我们就完成了。

一种证明方法是使用 素数差距

在这个问题的约束条件下, \(1500\) 连续整数总是包含至少一个素数。因此,在 \((x,y)=(L,R),(L,R-1),\cdots,(L,R-1500)\) 中,至少有一个满足 \(\gcd(x,y)=1\) 。由此可见 \(K \leq 1500\) 。

提交示例(C++)

事实上, \(K\) 会比这个极限小得多。在 \(R-5, \cdots, R\) 中,总有一个数与 \(30\) 共乘,而在约束条件下,这个数总是与 \(L, \cdots, L+16\) 中的某些数共乘。这就证明了 \(K \leq 21\) 。(由 maspy 证明)使用 CRT 可以生成有 \(K=7\) 的情况。(洗素数的想法是由 Nyaan 提出的)。

b:
发现能弄出来的1数量是连续的,所以我们输出最多能增加多少1或最多能减少多少1就可以了。用最大子段和即可。

c:
trick写在博弈论的题解里了。

由于a[n]>a[n-1]+1为必胜态,那么我们alice就不能给bob丢这个态,所以每次都会保证数连续地取。所以数组中最大的数都会减少1,所以最终次数是a[n]-(n-1),判断奇偶即可

标签:arc137,gcd,1500,我们,leq,cdots,素数
From: https://www.cnblogs.com/wuhupai/p/18362521

相关文章

  • arc136,arc137,arc138题解
    ARC136A-EAA↔BB贪心。可以把BB换成A,可以把BA换成AB。BTripleShift直观上觉得只要数集相同,那么就是可以变换的。大概方法就是每次找到正确的数把它挪到数列的端点,这样显然是可行的。但是在相反的三个上出现了问题,原因在于只剩最后两个数时方向可能是反着的。分析......
  • ARC137D Prefix XORs 题解
    这里的所有下标从\(\bm0\)开始。我们考察一下每次操作后的数列\(a\)会是什么样的。这里用\(a_i\)前面的系数\(x\)表示\(a_i\)贡献了\(x\)次,\(+\)表示异或。\[\begin{matrix}k=0&a_0&a_1&a_2&\cdots&a_{n-1}\\k=1&a_0&a_0+a_1&a_0+a_1+a_2&\cdots&......
  • 「解题报告」ARC137F Overlaps
    首先有经典结论,两个实数随机变量相等的概率为\(0\)。那么在实数上随机若干个数,最后肯定会有一个顺序关系,而我们只关心这个顺序,所以可以把问题变成离散的。也就是我们现在......
  • [数学记录]arc137D Prefix Xors
    FWT/高维前缀和入门题。题意:给定一个数列\(a\),每次迭代把原数组替代为前缀异或和数组,求经过\(1-m\)次操作后\(a_n\)的值。\(n\leq10^6\)。首先,无论是手推找规律还......
  • [??记录]arc137C Distinct Numbers
    这段时间第一道没能自己想出来的题。题意:给定\(n\)个数,二人玩游戏,每次把全局最大数减小并改成一个当前未出现的数,不能操作者败。求胜者。首先我们来研究一次操作时的情......