摘要:
思路:处理每一位右边第一组互质的数的右边数的位置,O(1)处理查询; 我们先处理对于一个数右边第一个与它互质的数 从n->1开始 对于每一个数 对其进行素因数分解,记录每一个素数被那些数所包含 同时二进制标记处理其本身与那些数不互质 最后对i-n取反 找第一个1出现的位置,就是右边与它互质的第一个数 阅读全文
摘要:
按降序排序 所以第2个之后的人每次都有2中决策; 1.和1跑过去 2.和他前面一个跑过去 俩这种取最小值即可 阅读全文
摘要:
阶乘的逆元: 记 f[i] = i! mod p, g[i] = (i!)−1 mod p 容易发现 g[i] = g[i]+1∗(i +1) i−1 = f[i]−1∗g[i] 只需要算出 f[n],然后求出 f[n] 的逆元 g[n],然后递推即可。 阅读全文
摘要:
b[n]表示1到n-1与n的gcd的和,所以dp[n]=dp[n-1]+dp[n]; a[i]表示与gcd(n, x)= i的x的个数; 所以b[n]=sum(a[i]*i) , 所以我们只需求a[i]即可; 根据gcd(n, x)=i >gcd(n/i, x/i) = 1, 因此仅仅要求出欧拉函数 阅读全文