BZOJ1011 莫比乌斯反演(基础题
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1101
【题目大意】
求[1,n][1,m]内gcd=k的情况
【题解】
考虑求[1,n][1,m]里gcd=k
等价于[1,n/k][1,m/k]里gcd=1
考虑求[1,n][1,m]里gcd=1
结果为sum(mu[d]*(n/d)*(m/d))
预处理O(n^1.5)
由于n/d只有sqrt(n)种取值,所以可以预处理出miu[]的前缀和 询问时分段求和
【代码】
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5 + ;
int t;
//线性筛法求莫比乌斯函数
bool vis[N + ];
int pri[N + ];
int mu[N + ];
int sum[N]; void mus() {
memset(vis, , sizeof(vis));
mu[] = ;
int tot = ;
for (int i = ; i < N; i++) {
if (!vis[i]) {
pri[tot++] = i;
mu[i] = -;
}
for (int j = ; j < tot && i * pri[j] < N; j++) {
vis[i * pri[j]] = ;
if (i % pri[j] == ) {
mu[i * pri[j]] = ;
break;
}
else mu[i * pri[j]] = -mu[i];
}
}
sum[]=;
for(int i=;i<N;i++) sum[i]=sum[i-]+mu[i];
}
int n,m,k;
ll cal(int x,int y){
int ma=min(x,y);
ll ans=;
for(int i=,j;i<=ma;i=j+){
j=min(x/(x/i),y/(y/i));
if(j>=ma) j=ma;
ans+=(sum[j]-sum[i-])*(x/i)*(y/i);//此区间内x/i与y/i均为定值
}
return ans;
}
int main() {
mus();
scanf("%d",&t);
for(int i=;i<t;i++){
cin>>n>>m>>k;
cout<<cal(n/k,m/k)<<endl;
}
return ;
}
BZOJ1011 莫比乌斯反演(基础题的更多相关文章
- SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演基础题)
Visible Lattice Points Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at ...
- P5518 [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题
瞎扯 建议在阅读题解之前欣赏这首由普莉兹姆利巴姐妹带来的的合奏. Q:你参加省选吗?不是说好了考完 NOIP 就退吗. A:对啊. Q:那你学这玩意干啥? A:对啊,我学这玩意干啥? 写这题的动机? ...
- 洛谷 P5518 - [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题(莫比乌斯反演+整除分块)
洛谷题面传送门 一道究极恶心的毒瘤六合一题,式子推了我满满两面 A4 纸-- 首先我们可以将式子拆成: \[ans=\prod\limits_{i=1}^A\prod\limits_{j=1}^B\p ...
- hdu1695莫比乌斯反演模板题
hdu1695 求1<=i<=n&&1<=j<=m,gcd(i,j)=k的(i,j)的对数 最后的结果f(k)=Σ(1<=x<=n/k)mu[x]* ...
- BZOJ 2440 完全平方数 莫比乌斯反演模板题
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2440 题目大意: 求第k个无平方因子的数 思路: 二分答案x,求1-x中有多少个平方因 ...
- hdu4746莫比乌斯反演进阶题
Mophues Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327670/327670 K (Java/Others)Total S ...
- 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)
[BZOJ2301][HAOI2011]Problem B(莫比乌斯反演) 题面 Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...
- 莫比乌斯反演&各种筛法
不学莫反,不学狄卷,就不能叫学过数论 事实上大概也不是没学过吧,其实上赛季头一个月我就在学这东西,然鹅当时感觉没学透,连杜教筛复杂度都不会证明,所以现在只好重新来学一遍了(/wq 真·实现了水平的负增 ...
- 【BZOJ2820】YY的GCD(莫比乌斯反演)
[BZOJ2820]YY的GCD(莫比乌斯反演) 题面 讨厌权限题!!!提供洛谷题面 题解 单次询问\(O(n)\)是做过的一模一样的题目 但是现在很显然不行了, 于是继续推 \[ans=\sum_{ ...
随机推荐
- 【Leetcode】【Easy】Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
- ptyhon class定制方法
__iter__ 如果一个类想被用于for ... in循环.须实现一个__iter__()方法,该方法返回一个迭代对象,然后,Python的for循环就会不断调用该迭代对象的__next__() ...
- sql server alter column 由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN 失败
今天在修改一个字段类型,由原来的 varchar(500) 增加到 varchar(1000) 则对应的SQL 语句,执行后如图错误 结果查下来是因为其中一个视图建成了索引视图, 解决办法:先将该视图 ...
- June 27th 2017 Week 26th Tuesday
Happiness takes no account of time. 幸福不觉光阴过. At the beginning of this week, I planned to make some s ...
- 如何在SAP里创建configurable material物料主数据
(1) 使用tcode CT04创建characteristic: assign 所有可能的color value: (2) 使用tcode CL02创建class. 类型选择300- variant ...
- [python]emlog相册插件getshell exploit
昨天本站转载了emlog相册插件的漏洞分析文章,当然也有html版的getshell代码,喜欢的同学们可以直接用昨天文章中分享的代码.为了练习python,小弟用python又重写了一次,喜欢的同学们 ...
- 使用log4j让日志写入数据库
之前做的一个项目有这么个要求,在日志管理系统里,需要将某些日志信息存储到数据库里,供用户.管理员查看分析.因此我就花了点时间搞了一下这一功能,各位请看. 摘要:我们知道log4j能提供强大的可配置的记 ...
- Java虚拟机1:开篇
1.前言 由于后期学习需要用到大量的JVM底层的东西,所有本人调整了一下学习计划,打算先从JVM入手,了解整个JAVA的运行机制,内存模型,编译原理等等一些底层的东西,这样在学习 后面的东西,会有一种 ...
- 「bzoj4264 小C找朋友」
权限题 就是一个集合\(hash\) 集合\(hash\)可以用于判断两个集合是否相等,具体做法就是给每个随机一个值,之后异或起来就是可以了 这个题就是这样,处理出每个点直接相连的点集的\(hash\ ...
- 关于Ftp服务器
步骤/方法 首先在本地机器上创建一个用户!这些用户是用来登录到FTP的!我的电脑右键->管理->本地用户和组->用户->“右键”新建用户->输入用户名和密码再点创建就行了 ...