题解

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1LL<<30;
const int N = 10000000;
int prime[N+5], low[N+5], check[N+5], pow_cnt[N+5], tot, f[N+5], f2[N+5], f3[N+5];
void sieve() {
memset(check, 0, sizeof(check));
low[1] = 1; tot = 0; f[1] = f2[1] = f3[1] = 1; pow_cnt[1] = 0;
for(int i = 2; i <= N; ++i) {
if(!check[i]) {
low[i] = i; prime[tot++] = i;f[i] = i-2;
f2[i] = i; f3[i] = i; pow_cnt[i] = 1;
}
for(int j = 0; j < tot; ++j) {
if(i * prime[j] > N) break;
check[i*prime[j]] = 1;
if(i % prime[j] == 0) {
pow_cnt[i * prime[j]] = pow_cnt[i] + 1;
low[i * prime[j]] = low[i] * prime[j];
if(low[i] == i) {
if(i == prime[j]) f[i * prime[j]] = prime[j]*prime[j]+1-2*prime[j];
else f[i * prime[j]] = f[i] * prime[j];
f2[i * prime[j]] = f2[i];
f3[i * prime[j]] = f3[i];
if(pow_cnt[i*prime[j]] % 2 == 1) f2[i * prime[j]] *= prime[j];
if(pow_cnt[i*prime[j]] % 3 == 1) f3[i * prime[j]] *= prime[j];
}else {
f[i * prime[j]] = f[i / low[i]] * f[low[i] * prime[j]];
f2[i * prime[j]] = f2[i / low[i]] * f2[low[i] * prime[j]];
f3[i * prime[j]] = f3[i / low[i]] * f3[low[i] * prime[j]];
}
break;
}else {
low[i * prime[j]] = prime[j];
pow_cnt[i * prime[j]] = 1;
f[i * prime[j]] = f[i] * f[prime[j]];
f2[i * prime[j]] = f2[i] * f2[prime[j]];
f3[i * prime[j]] = f3[i] * f3[prime[j]];
}
}
}
}
int t, A, B, C;
int main() {
sieve();
// for(int i = 1; i <= 100; ++i) {
// cout << f3[i] << " ";
// }cout << endl;
scanf("%d", &t);
while(t--) {
scanf("%d%d%d", &A, &B, &C);
ll ans = 0;
for(int i = 1; i <= max(A,max(B,C)); ++i) {
ans = (ans + (A/i)*(B/f2[i])%mod*(C/f3[i])%mod*f[i]%mod)%mod;
}
cout << ans << endl;
}
}

【HDU 6428】Calculate 莫比乌斯反演+线性筛的更多相关文章

  1. 【bzoj2693】jzptab 莫比乌斯反演+线性筛

    题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...

  2. 【bzoj2694】Lcm 莫比乌斯反演+线性筛

    题目描述 求$\sum\limits_{i=1}^n\sum\limits_{j=1}^m|\mu(gcd(i,j))|lcm(i,j)$,即$gcd(i,j)$不存在平方因子的$lcm(i,j)$之 ...

  3. 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛

    题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...

  4. 【BZOJ-4407】于神之怒加强版 莫比乌斯反演 + 线性筛

    4407: 于神之怒加强版 Time Limit: 80 Sec  Memory Limit: 512 MBSubmit: 241  Solved: 119[Submit][Status][Discu ...

  5. BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)

    一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了. 考虑怎么求g(n).当然是打表啊.设n=∏piai,n/d=∏pibi .显然若存在bi>1则这个d没 ...

  6. Luogu 4917 天守阁的地板(莫比乌斯反演+线性筛)

    既然已经学傻了,这个题当然是上反演辣. 对于求积的式子,考虑把[gcd=1]放到指数上.一通套路后可以得到∏D∏d∏i∏j (ijd2)μ(d) (D=1~n,d|D,i,j=1~n/D). 冷静分析 ...

  7. 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记

    最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...

  8. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  9. 【bzoj3309】DZY Loves Math 莫比乌斯反演+线性筛

    Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0. 给定正整数a,b, ...

随机推荐

  1. 解决ajax跨域问题的多种方法

    //第一种方法使用jsonp的方式 <script type="text/javascript" src="http://www.youxiaju.com/js/j ...

  2. python 面试题 删除字符串a中包含的字符串b

  3. angular选择器功能

    1.$event对象    $event对象其实就是潜在的jQuery事件对象,通过$event.currentTarget获取当前元素,通过$event.target获取当前元素的子元素. 例如: ...

  4. html5小趣味知识点系列(一)required

    都知道这个属性是检查你 是否填写了字段也就是说咱们不用判断输入的数值是否为空的情况了 但是这个属性一定要和form配合在一起使用单独的使用是不可以实现的 <!DOCTYPE html> & ...

  5. html5小趣味知识点系列(一)autofocus

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. XSD文件详解(二)

    <?xml version="1.0" encoding="gb2312"?> <studentlist>   <student  ...

  7. Mysql主从复制,实现数据同步

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  8. iOS base64加密解密

    本文转载至 http://jingyan.baidu.com/article/93f9803fff45c9e0e46f5596.html 从参考资料的地址中下载GTMBase64.zip库文件包,并解 ...

  9. 我的Android进阶之旅------>Android中android:windowSoftInputMode的用法

    面试题:如何在显示某个Activity时立即弹出软键盘? 答案:在AndroidManifest.xml文件中设置<activity>标签的android:windowSoftInputM ...

  10. Python学习笔记_Python基础

    Python 基础 语句和语法 凝视 继续 代码组 代码的缩进 在一行书写多个语句 模块 变量赋值 赋值操作符 增量赋值 多重赋值 多元赋值 python编写的基本风格 模块的结构和布局 内存管理 变 ...