给定一个序列,每次可以使$a_i+1,a_i-1$
求最小操作数使得$gcd(a_1,a_2…a_n)>1$
显然$gcd=2$,$ans<n$
假设有$k$个数,$+2,-2$,$2k<n,k<n/2$
所以可以知道一定有$n/2$个数$+1,-1,0$
随取选取一个数枚举他的质因数$n\log a_i$
如果实验次数为$m$,失败概率=$1-\frac{1}{2^m}$
代码
1 |
|
给定一个序列,每次可以使$a_i+1,a_i-1$
求最小操作数使得$gcd(a_1,a_2…a_n)>1$
显然$gcd=2$,$ans<n$
假设有$k$个数,$+2,-2$,$2k<n,k<n/2$
所以可以知道一定有$n/2$个数$+1,-1,0$
随取选取一个数枚举他的质因数$n\log a_i$
如果实验次数为$m$,失败概率=$1-\frac{1}{2^m}$
1 | #include <iostream> |