题目传送门
由于
x
x
o
r
(
x
+
1
)
=
1
x\ xor\ (x+1)=1
x xor (x+1)=1,所以我们只需要构造出相邻的两个数即可。
怎么找呢? 根据裴蜀定理可知
gcd
(
a
,
b
)
=
1
,
是
∃
a
×
x
+
b
×
y
=
1
,
(
x
,
y
∈
N
)
\gcd(a,b)=1,是 \exists a\times x+b\times y=1,(x,y\in \N)
gcd(a,b)=1,是∃a×x+b×y=1,(x,y∈N)的充要条件。
则我们只要找到某两个互质数即可。
如果存在数
x
=
y
+
z
,
其
中
y
∣
q
,
若
gcd
(
z
,
q
)
=
1
则
gcd
(
x
,
q
)
=
1
x=y+z,其中y|q,若\gcd(z,q)=1则\gcd(x,q)=1
x=y+z,其中y∣q,若gcd(z,q)=1则gcd(x,q)=1。这个反证即可。
我们如果构造出一个数
A
×
x
+
2
k
A\times x+2^{k}
A×x+2k即可。我们这时只需要在纸上稍微画一画就可以发现。只要将x的最后一个1和第一个1对齐在异或上x即可。
最后随便exgcd搞一下就好了。
代码:无。
顺便说一下,这一题是存在一种随机算法的。具体就是随机取什么数,再随机一种运算即可。比赛的时候如果实在没办法,而且修改次数比较多的时候,就可以随机了。而且这题的输入固定,可以本地测一下
CF1427 E. Xum 口胡题解
最新推荐文章于 2021-10-11 16:24:27 发布