【HDU 6428】Calculate 莫比乌斯反演+线性筛
题解

代码
#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 莫比乌斯反演+线性筛的更多相关文章
- 【bzoj2693】jzptab 莫比乌斯反演+线性筛
题目描述 输入 一个正整数T表示数据组数 接下来T行 每行两个正整数 表示N.M 输出 T行 每行一个整数 表示第i组数据的结果 样例输入 1 4 5 样例输出 122 题解 莫比乌斯反演+线性筛 由 ...
- 【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)$之 ...
- 【bzoj4407】于神之怒加强版 莫比乌斯反演+线性筛
题目描述 给下N,M,K.求 输入 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上式所示. 输出 如题 ...
- 【BZOJ-4407】于神之怒加强版 莫比乌斯反演 + 线性筛
4407: 于神之怒加强版 Time Limit: 80 Sec Memory Limit: 512 MBSubmit: 241 Solved: 119[Submit][Status][Discu ...
- BZOJ3309 DZY Loves Math(莫比乌斯反演+线性筛)
一通正常的莫比乌斯反演后,我们只需要求出g(n)=Σf(d)*μ(n/d)的前缀和就好了. 考虑怎么求g(n).当然是打表啊.设n=∏piai,n/d=∏pibi .显然若存在bi>1则这个d没 ...
- Luogu 4917 天守阁的地板(莫比乌斯反演+线性筛)
既然已经学傻了,这个题当然是上反演辣. 对于求积的式子,考虑把[gcd=1]放到指数上.一通套路后可以得到∏D∏d∏i∏j (ijd2)μ(d) (D=1~n,d|D,i,j=1~n/D). 冷静分析 ...
- 莫比乌斯反演/线性筛/积性函数/杜教筛/min25筛 学习笔记
最近重新系统地学了下这几个知识点,以前没发现他们的联系,这次总结一下. 莫比乌斯反演入门:https://blog.csdn.net/litble/article/details/72804050 线 ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- 【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, ...
随机推荐
- 三层登录实例VB.NET版具体解释---理论加实战篇
层,百度百科这样解释,首先-重叠起来的东西:重叠起来的东西中的一部分:层次|表层|大气层.其次-重叠.反复:层峦叠嶂|层出不穷.最后-量词,用于能够分出层次的事物.女孩儿强烈的第六感,三层中的层一定是 ...
- 【JavaEE】Springmvc搭建方法及example
现在介绍SSH的文章很多,但是适合自己需求的却经常找不到,这些东西呢,会了之后总会感觉别人的程序哪里哪里别扭,会之前呢就感觉很混乱,而且SSH的官方文档,至少在我看来是“会者勉强能看.不会者一片迷茫” ...
- git 撤销已经push到远端的代码
其实是没有直接让远端代码回复到某次的指令,实现撤销push的思路如下: 1.先让代码恢复到想要恢复的前一次提交记录 2.重新提交代码,覆盖端上的代码,就相当于撤销了push 的提交 实现方式如下: 1 ...
- WPF Button TextBox 圆角
<!--圆角button--> <Style TargetType="Button"> <Setter Property="FontSize ...
- iOS 企业版 安装失败 原因
首先要吐槽下国内的论坛水分略多,以下问题大多是查询stackoverflow等论坛解决的.推荐一款软件,Log Guru,用来查看app安装时的系统日志,很多问题要看日志才知道错误点. 1.首先有几 ...
- lua面向对象铺垫
Account = { balance = , withdraw = function(self, v) self.balance = self.balance - v end } --:操作符隐藏了 ...
- EasyDSS+EasyNVR实现幼儿园直播/工地直播等分权限观看直播视频的功能
在EasyNVR互联网直播服务器使用说明书中有关于EasyNVR分组的介绍: "EasyNVR的功能定位就是为视频应用层输出视频设备接入/标准视频输出的能力平台层,只做基础的视频通道接入.视 ...
- POJ 1694 An Old Stone Game【递归+排序】
链接: http://poj.org/problem?id=1694 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...
- saltStack 证书管理
SaltStack 使用 SSL 签证的方式进行安全认证,我们可以在 Master 端看到 Minion 端的整数签证请求 1.查看当前证书签证情况 [root@SaltStack-Master ~] ...
- unix网络编程笔记(二)
第四章笔记 1. 基本Tcpclient/server程序的套接字函数 2. socket函数: int socket(int family,int type,int protocol); (1)so ...