//UVA 12716#include#include #include #include #include #include #include #include
题意:输入整数n(1<=n<=3千万),有多少对整数(a,b)满足:1<=b<=a<=n,且gcd(a,b)=a XOR b。例如:n=7时,有4对:(3,2),(5,4),(6,4),(7,6)。题解:gcd(a,b)==a^b令gcd(a,b)=c,由于a^b>=a-b(a>=b), 那么c>=a-b (1) a=k1c,b=k2c(k1>=k2),那么a-b=(k1-k2)c>=c (2) 由(1)和(2)可得a-b==c,也就是a^b==a-b可以枚举c(a的因数).
牛客练习赛42 B
题目描述
注意本题有模数
给定一个 长度为 n 的序列 { a } ,求:
max1≤i≤j≤n{ (ai⊕ai+1⊕⋯⊕aj)+(ai+ai+1+⋯+aj)}mod100000007max1≤i≤j≤n{(ai⊕ai+1⊕⋯⊕aj)+(ai+ai+1+⋯+aj)}mod100000007
其中 ⊕⊕ 表示异或
输入描述:
第一行一个整数 n 。 第二行 n 个整数,表示 aiai 。
输出描述:
一行一个整数 ans ,表示答案。
示例1
输入
31 2 3
输出
6
说明
我们 显然需要将所有的数字都选上显然需要将所有的数字都选上,此时 ans=(1⊕2⊕3)+1+2+3=6ans=(1⊕2⊕3)+1+2+3=6 。
备注:
对于所有的数据,保证 1≤n≤3×105,0≤ai<2201≤n≤3×105,0≤ai<220 。
样例:想不到吧,你的做法至少能过样例!
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include