Problem C. Calculate

ϕ=ϕ∗ϵ=ϕ∗μ∗Iϕ(n)=∑d∣n(ϕ∗μ)(d)设g(n)=∑d∣n(ϕ∗μ)(d)∑i=1A∑j=1B∑k=1Cϕ(gcd(i,j2,k3))∑i=1A∑j=1B∑k=1C∑d∣i,d∣j2,d∣k3(ϕ∗μ)(d)∑d=1A(ϕ∗μ)(d)∑i=1A∑j=1B∑k=1C[d∣i,d∣j2,d∣k3]\phi = \phi * \epsilon = \phi * \mu * I\\ \phi(n) = \sum_{d \mid n} (\phi*\mu)(d)\\ 设g(n) = \sum_{d \mid n}(\phi * \mu)(d)\\ \sum_{i = 1} ^{A} \sum_{j = 1} ^{B} \sum_{k = 1} ^{C} \phi(gcd(i, j ^ 2, k ^ 3))\\ \sum_{i = 1} ^{A} \sum_{j = 1} ^{B} \sum_{k = 1} ^{C} \sum_{d \mid i, d \mid j ^ 2, d \mid k ^ 3} (\phi *\mu)(d)\\ \sum_{d = 1} ^{A} (\phi *\mu)(d) \sum_{i = 1} ^{A} \sum_{j = 1} ^{B} \sum_{k = 1} ^{C}[d \mid i, d \mid j ^ 2, d \mid k ^ 3]\\ ϕ=ϕ∗ϵ=ϕ∗μ∗Iϕ(n)=d∣n∑​(ϕ∗μ)(d)设g(n)=d∣n∑​(ϕ∗μ)(d)i=1∑A​j=1∑B​k=1∑C​ϕ(gcd(i,j2,k3))i=1∑A​j=1∑B​k=1∑C​d∣i,d∣j2,d∣k3∑​(ϕ∗μ)(d)d=1∑A​(ϕ∗μ)(d)i=1∑A​j=1∑B​k=1∑C​[d∣i,d∣j2,d∣k3]
设x=∏pikix = \prod p_i ^{k_i}x=∏piki​​,唯一分解,如果x∣ytx \mid y ^ tx∣yt,则有∏pi⌈kit⌉∣y\prod p_i ^{\lceil \frac{k_i}{t} \rceil} \mid y∏pi⌈tki​​⌉​∣y,设ft(n)=∏pjkjtf_t(n) = \prod p_j ^ \frac{k_j}{t}ft​(n)=∏pjtkj​​​。

上式可得:
∑d=1A(ϕ∗μ)(d)⌊df1(d)⌋⌊df2(d)⌋⌊df3(d)⌋\sum_{d = 1} ^{A}(\phi * \mu)(d) \lfloor \frac{d}{f_1(d)} \rfloor \lfloor \frac{d}{f_2(d)} \rfloor \lfloor \frac{d}{f_3(d)} \rfloor d=1∑A​(ϕ∗μ)(d)⌊f1​(d)d​⌋⌊f2​(d)d​⌋⌊f3​(d)d​⌋

对于h=(ϕ∗μ)(d),f1,f2,f3h = (\phi * \mu)(d), f_1, f_2, f_3h=(ϕ∗μ)(d),f1​,f2​,f3​都具有积性,所以可以线性筛预处理,最后O(A)O(A)O(A)统计答案。

#include <bits/stdc++.h>using namespace std;typedef unsigned uint;const int N = 1e7 + 10;uint prime[N], h[N], f1[N], f2[N], f3[N], num[N], primes[N], cnt;bool st[N];void init() {h[1] = f1[1] = f2[1] = f3[1] = primes[1] = 1;for (int i = 2; i < N; i++) {if (!st[i]) {prime[++cnt] = i;h[i] = i - 2;f1[i] = i;f2[i] = i;f3[i] = i;primes[i] = i;num[i] = 1;}for (int j = 1; j <= cnt && 1ll * i * prime[j] < N; j++) {st[i * prime[j]] = 1;if (i % prime[j] == 0) {primes[i * prime[j]] = primes[i] * prime[j];num[i * prime[j]] = num[i] + 1;f1[i * prime[j]] = f1[i] * prime[j];f2[i * prime[j]] = f2[i / prime[j]] * prime[j];if (i / prime[j] % prime[j] == 0) {f3[i * prime[j]] = f3[i / prime[j] / prime[j]] * prime[j];}else {f3[i * prime[j]] = f3[i];}if(i * prime[j] == primes[i * prime[j]]) {h[i * prime[j]] = i * prime[j] - 2 * i + i / prime[j];}else {h[i * prime[j]] = h[i / primes[i]] * h[primes[i * prime[j]]];}break;}h[i * prime[j]] = h[i] * h[prime[j]];f1[i * prime[j]] = f1[i] * f1[prime[j]];f2[i * prime[j]] = f2[i] * f2[prime[j]];f3[i * prime[j]] = f3[i] * f3[prime[j]];primes[i * prime[j]] = prime[j];num[i * prime[j]] = 1;}}
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);init();int T;scanf("%d", &T);while (T--) {uint A, B, C, ans = 0;scanf("%u %u %u", &A, &B, &C);for (int d = 1; d <= (int)A; d++) {ans += h[d] * (A / f1[d]) * (B / f2[d]) * (C / f3[d]);}printf("%u\n", ans & ((1 << 30) - 1));}return 0;
}

HDU 6428 Problem C. Calculate(积性函数)相关推荐

  1. CCPC-2017 杭州站B丨HDU - 6265丨数论丨积性函数 丨欧拉函数丨狄利克雷卷积丨思维变换

    [参考博客]@WJHKDGHP ccpc2017杭州站 B [参考博客]@灬从此以后灬 2017 CCPC 杭州 HDU6265B 积性函数 特别感谢以上两位博主,让我看懂了许多细节. 交题网址(HD ...

  2. POJ-2480 Longge's problem 积性函数

    题目链接:http://poj.org/problem?id=2480 题意:多次求sigma(gcd(i,n), 1<=i<=n<2^32) 这题不能直接搜了,需要考虑函数的性质. ...

  3. POJ 2480 Longge#39;s problem 积性函数

    题目来源:POJ 2480 Longge's problem 题意:求i从1到n的gcd(n, i)的和 思路:首先假设m, n 互质 gcd(i, n*m) = gcd(i, n)*gcd(i, m ...

  4. HDU 6134 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)

    实在太长了直接放题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6134 这题就是求 考虑当Gcd(i, j)==1时,除了j为1的情况,其它时候i/j一 ...

  5. 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  6. 【数学专题】莫比乌斯反演与积性函数

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的模板整合计划 目录 莫比乌斯反演 AcWing 2702. problem b AcWing 1358. 约数个数和(莫 ...

  7. 浅谈积性函数求前缀和

    转载至https://blog.csdn.net/skywalkert/article/details/50500009 前置技能 积性函数的定义 若f(n)f(n)的定义域为正整数域,值域为复数,即 ...

  8. 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)

    J. Sum A square-free integer is an integer which is indivisible by any square number except 11. For ...

  9. 积性函数性质-POJ2480

    https://vj.xtuacm.cf/contest/view.action?cid=146#problem/D 参考:http://www.cnblogs.com/xiaowuga/p/7161 ...

最新文章

  1. 小模型实现大一统!FBNetV5一举包揽CV任务3个SOTA
  2. Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)
  3. linux libfcmain.so,BabyLinux制作过程详解
  4. 在中WebBrowser加载Excel后获取excel对象
  5. dom技术解析xml下jaxp解析器详细代码
  6. java开发区块链_使用Java语言从零开始创建区块链
  7. 呼叫中心IVR系统的介绍
  8. 【合集】高等数学随堂笔记-乐经良老师-全系列内容汇总
  9. 按键精灵手机助手找回素材
  10. 肿瘤精准细胞免疫治疗:梦想照进现实
  11. 戴尔将为奔驰多款车型设计专业的车载智能系统
  12. 2019年2月星环科技大数据应用开发面试(2年工作经验)
  13. stm32f103开发板入门到手进行开发
  14. 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作
  15. 新版H5小游戏管理平台系统+适用于商家活动
  16. 收藏了,挺有意思的生成太极图
  17. android高仿京东秒杀,Android实现京东秒杀界面
  18. 撸一撸Spring Framework-IoC-概述
  19. maven model inspection
  20. signature=efdb5ad90eeeea3f87ec2e1a04449071,Zastosowanie komórek macierzystych w leczeniu cukrzycy

热门文章

  1. mysql游标书写_mysql中光标如何书写
  2. 轮子,辛苦你了。 | 今日最佳
  3. 童年各大名场面~ | 今日最佳
  4. 超级智能玩具《小小机器人》|全新50种玩法,创造力之源
  5. 给所有想从事软件研发的年轻工程师的忠告与建议
  6. vue click事件_vue指令用法
  7. c++歌手大赛系统_计人即讯|第十届程序设计大赛
  8. dataframe 修改某列_python dataframe操作大全数据预处理过程(dataframe、md5)
  9. java实现权限_Java实现常用权限控制算法
  10. php super和parent,parent()、parents()的用法区别