Gcd Product

Cm=∑i=1mAgcd⁡(i,m)Bgcd⁡(k+1−i,m)∑d1∣mAd1∑d2∣mBd2∑i=1m([gcd⁡(id1,md1)=1][d1∣i])([gcd⁡(m+1−id2,md2)=1][d2∣m+1−i])∑d1∣mAd1∑d2∣mBd2∑k1∣md1μ(k1)∑k2∣md2μ(k2)∑i=1m([d1∣i][k1∣id1])([d2∣m+1−i][k2∣m+1−id2])T1=d1×k1,T2=d2×k2∑T1∣m∑d1∣T1Ad1μ(T1d1)∑T2∣m∑d2∣T2Bd2μ(T2d2)∑i=1m[T1∣i][T2∣m+1−i]C_m = \sum_{i = 1} ^{m} A_{\gcd(i, m)} B_{\gcd(k + 1 - i, m)}\\ \sum_{d1 \mid m} A_{d1} \sum_{d_2 \mid m}B_{d_2} \sum_{i = 1} ^{m}\left([\gcd(\frac{i}{d_1}, \frac{m}{d_1}) = 1][d_1 \mid i]\right)\left([\gcd(\frac{m + 1 - i}{d_2}, \frac{m}{d_2}) = 1][d_2 \mid m + 1 - i]\right)\\ \sum_{d_1 \mid m} A_{d_1} \sum_{d_2 \mid m} B_{d_2} \sum_{k_1 \mid \frac{m}{d_1}} \mu(k_1) \sum_{k_2 \mid \frac{m}{d_2}} \mu(k_2) \sum_{i = 1} ^{m} \left([d_1 \mid i][k_1 \mid \frac{i}{d_1}] \right)\left([d_2 \mid m + 1 - i][k_2 \mid \frac{m + 1 - i}{d_2}] \right)\\ T_1 = d_1 \times k_1, T_2 = d_2 \times k_2\\ \sum_{T_1 \mid m} \sum_{d_1 \mid T_1} A_{d_1} \mu(\frac{T_1}{d_1}) \sum_{T_2 \mid m} \sum_{d_2 \mid T_2} B_{d_2} \mu(\frac{T_2}{d_2}) \sum_{i = 1} ^{m} [T_1 \mid i][T_2 \mid m + 1 - i]\\ Cm​=i=1∑m​Agcd(i,m)​Bgcd(k+1−i,m)​d1∣m∑​Ad1​d2​∣m∑​Bd2​​i=1∑m​([gcd(d1​i​,d1​m​)=1][d1​∣i])([gcd(d2​m+1−i​,d2​m​)=1][d2​∣m+1−i])d1​∣m∑​Ad1​​d2​∣m∑​Bd2​​k1​∣d1​m​∑​μ(k1​)k2​∣d2​m​∑​μ(k2​)i=1∑m​([d1​∣i][k1​∣d1​i​])([d2​∣m+1−i][k2​∣d2​m+1−i​])T1​=d1​×k1​,T2​=d2​×k2​T1​∣m∑​d1​∣T1​∑​Ad1​​μ(d1​T1​​)T2​∣m∑​d2​∣T2​∑​Bd2​​μ(d2​T2​​)i=1∑m​[T1​∣i][T2​∣m+1−i]
观察式子,不难发现∑d1∣T1Ad1μ(T1d1),∑d2∣T2Bd2μ(T2d2)\sum\limits_{d_1 \mid T_1} A_{d_1} \mu(\frac{T_1}{d_1}), \sum_{d_2 \mid T_2} B_{d_2} \mu(\frac{T_2}{d_2})d1​∣T1​∑​Ad1​​μ(d1​T1​​),∑d2​∣T2​​Bd2​​μ(d2​T2​​),二者对于给定的T1,T2T_1,T_2T1​,T2​都是可以确定的,跟变量mmm无关,

设f(n)=∑d∣nAdμ(nd),g(n)=∑d∣nBdμ(nd)f(n) = \sum\limits_{d \mid n} A_{d} \mu(\frac{n}{d}), g(n) = \sum_{d \mid n} B_{d} \mu(\frac{n}{d})f(n)=d∣n∑​Ad​μ(dn​),g(n)=∑d∣n​Bd​μ(dn​),得到∑T1∣mf(T1)∑T2∣mg(T2)∑i=1m[T1∣i][T2∣m+1−i]\sum\limits_{T_1 \mid m} f(T_1) \sum\limits_{T_2 \mid m} g(T_2) \sum\limits_{i = 1} ^{m}[T_1 \mid i][T_2 \mid m + 1 - i]T1​∣m∑​f(T1​)T2​∣m∑​g(T2​)i=1∑m​[T1​∣i][T2​∣m+1−i],

接下来我们考虑化简∑i=1m[T1∣i][T2∣m+1−i]\sum\limits_{i = 1} ^{m} [T_1 \mid i][T_2 \mid m + 1 - i]i=1∑m​[T1​∣i][T2​∣m+1−i]。

设i=T1k1,m+1−i=T2k2设i = T_1 k_1, m + 1 - i = T_2 k_2设i=T1​k1​,m+1−i=T2​k2​,则T1k1+T2k2=m+1T_1 k_1 + T_2 k_2 = m + 1T1​k1​+T2​k2​=m+1,可得:

同余方程T1k1≡1(modT2),T2k2≡1(modT1)T_1 k_1 \equiv 1 \pmod{T_2}, T_2 k_2 \equiv 1 \pmod{T_1}T1​k1​≡1(modT2​),T2​k2​≡1(modT1​)。

由T1∣i,T2∣m+1−iT_1 \mid i, T_2 \mid m + 1 - iT1​∣i,T2​∣m+1−i,则gcd⁡(T1,T2)∣i,gcd⁡(T1,T2)∣m+1−i\gcd(T_1, T_2) \mid i, \gcd(T_1, T_2) \mid m + 1 - igcd(T1​,T2​)∣i,gcd(T1​,T2​)∣m+1−i,所以gcd⁡(T1,T2)∣m+1\gcd(T_1, T_2) \mid m + 1gcd(T1​,T2​)∣m+1。

由T1∣m,T2∣mT_1 \mid m, T_2 \mid mT1​∣m,T2​∣m,则gcd⁡(T1,T2)∣m\gcd(T_1, T_2) \mid mgcd(T1​,T2​)∣m,因为gcd(m,m+1)=1gcd(m, m + 1) = 1gcd(m,m+1)=1,所以有gcd(T1,T2)=1gcd(T_1, T_2) = 1gcd(T1​,T2​)=1。

所以k1,k2k_1, k_2k1​,k2​,分别在膜T2,T1T_2, T_1T2​,T1​下有且只有唯一解x1,x2x_1, x_2x1​,x2​,有x1T1<T1T2,x2T2<T1T2x_1 T_1 < T_1 T_2, x_2 T_2 < T_1 T_2x1​T1​<T1​T2​,x2​T2​<T1​T2​,

可得x1T1+x2T2=T1T2+1x_1T_1 + x_2 T_2 = T_1T_2 + 1x1​T1​+x2​T2​=T1​T2​+1,要使k1T1+k2T2=m+1k_1T_1 + k_2 T_2 = m + 1k1​T1​+k2​T2​=m+1,

相当于在x1T1+x2T2=T1T2+1x_1T_1 + x_2 T_2 = T_1T_2 + 1x1​T1​+x2​T2​=T1​T2​+1的基础上给x1T1,x2T2x_1T_1,x_2T_2x1​T1​,x2​T2​组合分配,凑得m−T1T2m - T_1 T_2m−T1​T2​。

设m=KT1T2m = KT_1T_2m=KT1​T2​,所以解的个数就是K=mT1T2K = \frac{m}{T_1T_2}K=T1​T2​m​,则有:
Cm=∑T1∣mf(T1)∑T2∣mg(T2)mT1T2[gcd⁡(T1,T2)=1]T=T1T2∑T∣mmT∑T1∣Tf(T1)g(TT1)[gcd(T1,TT2)=1]C_m = \sum_{T_1 \mid m} f(T_1) \sum_{T_2 \mid m} g(T_2) \frac{m}{T_1T_2}[\gcd(T_1, T_2) = 1]\\ T = T_1 T_2\\ \sum_{T \mid m} \frac{m}{T} \sum_{T_1 \mid T} f(T_1) g(\frac{T}{T_1})[gcd(T_1, \frac{T}{T_2}) = 1]\\ Cm​=T1​∣m∑​f(T1​)T2​∣m∑​g(T2​)T1​T2​m​[gcd(T1​,T2​)=1]T=T1​T2​T∣m∑​Tm​T1​∣T∑​f(T1​)g(T1​T​)[gcd(T1​,T2​T​)=1]
先做一次迪利克雷卷积得到f,gf, gf,g,再做一次互质迪利克雷卷积得到∑T1∣Tf(T1)g(TT1)[gcd(T1,TT2)=1]\sum\limits_{T_1 \mid T} f(T_1) g(\frac{T}{T_1})[gcd(T_1, \frac{T}{T_2}) = 1]T1​∣T∑​f(T1​)g(T1​T​)[gcd(T1​,T2​T​)=1],最后迪利克雷卷积得到答案。

#include <bits/stdc++.h>using namespace std;const int N = 5e5 + 10, mod = 998244353;int prime[N], mu[N], phi[N], A[N], B[N], f[N], g[N], h[N], ans[N], n, cnt;bool st[N];void init() {mu[1] = phi[1] = 1;for (int i = 2; i < N; i++) {if (!st[i]) {prime[++cnt] = i;mu[i] = mod - 1;phi[i] = i - 1;}for (int j = 1; j <= cnt && 1ll * i * prime[j] < N; j++) {st[i * prime[j]] = 1;if (i % prime[j] == 0) {phi[i * prime[j]] = phi[i] * prime[j];break;}phi[i * prime[j]] = phi[i] * (prime[j] - 1);mu[i * prime[j]] = mod - mu[i];}}
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &A[i]);}for (int i = 1; i <= n; i++) {scanf("%d", &B[i]);}for (int i = 1; i <= n; i++) {for (int j = i; j <= n; j += i) {f[j] = (f[j] + 1ll * A[i] * mu[j / i] % mod) % mod;g[j] = (g[j] + 1ll * B[i] * mu[j / i] % mod) % mod;}}for (int i = 1; i <= n; i++) {for (int j = i; j <= n; j += i) {if (1ll * phi[i] * phi[j / i] == phi[j]) {h[j] = (h[j] + 1ll * f[i] * g[j / i] % mod) % mod;}}}for (int i = 1; i <= n; i++) {for (int j = i; j <= n; j += i) {ans[j] = (ans[j] + 1ll * (j / i) * h[i] % mod) % mod;}}for (int i = 1; i <= n; i++) {ans[i] ^= ans[i - 1];}printf("%d\n", ans[n]);return 0;
}

2020 ICPC 济南 F. Gcd Product相关推荐

  1. 2020 ICPC 济南 A Matrix Equation (高斯消元)

    题目链接A-Matrix Equation 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南) 题目描述 We call a matrix "01 Square" i ...

  2. 2020 icpc济南 A - Matrix Equation (高斯消元求自由元个数)

    链接: A - Matrix Equation 题意: 给一个 A 矩阵 一个 B 矩阵(矩阵元素为 0 或 1),求有多少个 C 矩阵 满足 A X C = B . C (叉乘 和 点乘). 思路: ...

  3. The 2020 ICPC Asia Shenyang Regional Programming Contest I题 Rise of Shadows(数论)

    题目链接The 2020 ICPC Asia Shenyang Regional Programming Contest 题目大意: 一天内有H小时,每小时M分钟,时针分针以恒定速率旋转. 现在若时针 ...

  4. 2020 ICPC Macau A. Accelerator(期望,计数,分治FFT)(每日一题 21.7.6)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2020 ICPC Macau A. Accelerator(分治FFT) Problem 给定长度为 ...

  5. 2020 ICPC NAC

    2020 ICPC NAC 题号 题目 知识点 难度 A Another Coin Weighing Puzzle B Mini Battleship C Bomas D All Kill E Gri ...

  6. The 2020 ICPC Asia Yinchuan Regional Programming Contest

    The 2020 ICPC Asia Yinchuan Regional Programming Contest A 开三个vector数组存储x,y,z轴上的点,unique+erase去重 #in ...

  7. 【2020 ICPC Asia East Continent Final】赛前训练

    这里写自定义目录标题 [2020 ICPC Asia East Continent Final]赛前训练 A - Namomo Subsequence 输入: 输出: 样例: 解析: 代码: F - ...

  8. F - GCD or MIN(数论)

    F - GCD or MIN 首先gcd⁡(x,y)≤min⁡(x,y)\gcd(x,y)\leq \min(x,y)gcd(x,y)≤min(x,y) 数组中任意2个数的gcd可能是一种方案,任意3 ...

  9. 2020美赛F奖论文(四):模拟退火算法驱动的结构策略设计

    上接:2020美赛F奖论文(三):足球团队指标和基于机器学习的球队表现预测 全文: 2020美赛F奖论文(一):摘要.绪论和模型准备 2020美赛F奖论文(二):传球网络模型(PNM)的建立和影响因子 ...

最新文章

  1. MySQL 千万级数据表 partition 实战应用
  2. 从源码层面带你实现一个自动注入注解
  3. json tostringfiy_JS学习笔记 : 类型转换之「抽象值操作」
  4. MyBatis之输入与输出(resultType、resultMap)映射
  5. SpringBoot-Freemarker与SpringBoot集成
  6. PEST分析顺丰服务需求_这个工作值不值得去做?4种分析模型及3种曲线让你学会观察行业...
  7. 大数据错题库(微信群Bug整理)
  8. 全面的SWOT分析的技巧和策略
  9. 驱动精灵w8ndows xp sp2,爱普生Epson TM-L60II打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
  10. android flashlight权限,大多数Android flashlight应用程序需要的权限数量非常多
  11. oracle裁员原因_导致甲骨文全球性裁员的原因有哪些?
  12. C#导出VCF格式电话本,遇到QUOTED-PRINTABLE编码的问题,附带QUOTED-PRINTABLE编码解码
  13. 大一高数下册笔记整理_大学高等数学知识点整理(全)
  14. SparkStreaming动态读取配置文件
  15. CVE和CWE的区别
  16. 基于蓝牙与Android设备的控制系统设计
  17. 模拟cmos集成电路(6)
  18. 【HTML实现弹幕滚动效果和文字动态发光特效代码】
  19. 搭建nodejs+express服务器
  20. xbox360游戏下载_Xbox Live游戏玩家API

热门文章

  1. python0表示剪刀_石头,纸,剪刀Python代码。帮助简化
  2. 李宏毅Reinforcement Learning强化学习入门笔记
  3. MultiProcessing中主进程与子进程之间通过管道(Pipe)通信
  4. html5制作线路图,HTML5绘制上海地铁线路图
  5. ​如何在图书馆收获一段爱情?​
  6. 这个偏僻的小山村竟出了12位博士28位硕士,高产“学霸”背后原因曝光......
  7. 每日一笑 | 如果把大脑看成CPU的话...
  8. 这些Python骚操作,你值得拥有
  9. 量子计算机是程序员的未来,研究者:量子计算机一旦成功问世,时间也许会失去存在的意义...
  10. chromium关闭更新_Win10今年最重磅更新!Win10 2004正式版详尽体验