bzoj2301-Problem b
题意
\(T\le 5\times 10^4\) 次询问,每次询问 \(a,b,c,d,k\le 5\times 10^4\),求
\]
分析
重新学了一次(可能跟第一次学没什么区别)莫比乌斯反演相关,这题还是很简单的。问题可以转化为求四次
\]
下面过程中设 \(n\le m\) 。
\sum _{i=1}^n\sum _{j=1}^m[gcd(i,j)=k]&=\sum _{i=1}^n\sum _{j=1}^m\sum _{k|i,k|j}\sum _{d|\frac{i}{k},d|\frac{j}{k}}\mu(d) \\
&=\sum _{d=1}^n\sum _{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum _{j=1}^{\lfloor\frac{m}{k}\rfloor}\mu (d) \\
&=\sum _{d=1}^n\mu (d) \lfloor\frac{\lfloor\frac{n}{k}\rfloor}{d}\rfloor \lfloor\frac{\lfloor\frac{m}{k}\rfloor}{d}\rfloor
\end{aligned}
\]
注意到 \(\lfloor\frac{n}{d}\rfloor\) 这种形式只有 \(2\sqrt n\) 种取值(对于 \(d\le \sqrt n\) ,显然;对于 \(d>\sqrt n\) ,\(\lfloor\frac{n}{d}\rfloor\le \sqrt n\) ,也最多只有 \(\sqrt n\) 种),所以 \(\lfloor\frac{\lfloor\frac{n}{k}\rfloor}{d}\rfloor \lfloor\frac{\lfloor\frac{m}{k}\rfloor}{d}\rfloor\) 最多只有 \(4\sqrt n\) 种取值,跳一下即可做到单次询问 \(O(\sqrt n)\) ,只要预处理 \(\mu\) 函数的前缀和即可。
代码
#include<bits/stdc++.h>
using namespace std;
inline int read() {
	int x=0,f=1;
	char c=getchar_unlocked();
	for (;!isdigit(c);c=getchar_unlocked()) if (c=='-') f=-1;
	for (;isdigit(c);c=getchar_unlocked()) x=x*10+c-'0';
	return x*f;
}
typedef long long giant;
const int maxn=5e4+1;
bool np[maxn];
int p[maxn],mu[maxn],ps=0;
giant calc(int n,int m) {
	giant ret=0;
	if (n>m) swap(n,m);
	for (int i=1,j;i<=n;i=j+1) {
		j=min(n/(n/i),m/(m/i));
		ret+=(giant)(mu[j]-mu[i-1])*(n/i)*(m/i);
	}
	return ret;
}
int main() {
#ifndef ONLINE_JUDGE
	freopen("test.in","r",stdin);
#endif
	mu[1]=1;
	for (int i=2;i<maxn;++i) {
		if (!np[i]) p[++ps]=i,mu[i]=-1;
		for (int j=1;j<=ps && i*p[j]<maxn;++j) {
			np[i*p[j]]=true;
			if (i%p[j]==0) break;
			mu[i*p[j]]=-mu[i];
		}
	}
	for (int i=2;i<maxn;++i) mu[i]+=mu[i-1];
	int T=read();
	while (T--) {
		int a=read(),b=read(),c=read(),d=read(),k=read();
		a=(a-1)/k,b/=k,c=(c-1)/k,d/=k;
		giant ans=(calc(b,d)-calc(b,c))-(calc(a,d)-calc(a,c));
		printf("%lld\n",ans);
	}
	return 0;
}
bzoj2301-Problem b的更多相关文章
- [HAOI2011][bzoj2301] Problem b [莫比乌斯反演+容斥原理+分块前缀和优化]
		题面: 传送门 有洛谷就尽量放洛谷链接呗,界面友好一点 思路: 和HDU1695比较像,但是这一回有50000组数据,直接莫比乌斯反演慢慢加的话会T 先解决一个前置问题:怎么处理a,c不是1的情况? ... 
- [bzoj2301]Problem b莫比乌斯反演+分块优化
		题意: $\sum\limits_{\begin{array}{*{20}{c}}{a < = x < = b}\\{c < = y < = d}\end{array}} {\ ... 
- 【BZOJ2301】【HAOI2011】Problem B(莫比乌斯反演)
		[BZOJ2301][HAOI2011]Problem B(莫比乌斯反演) 题面 Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ... 
- 【bzoj2301】 HAOI2011—Problem b
		http://www.lydsy.com/JudgeOnline/problem.php?id=2301 (题目链接) 题意 给出${a,b,c,d,k}$,${n}$组询问,求$${\sum_{i= ... 
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
		2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ... 
- BZOJ2301:[HAOI2011]Problem b——题解
		http://www.lydsy.com/JudgeOnline/problem.php?id=2301 https://www.luogu.org/problemnew/show/P2522 对于给 ... 
- [BZOJ1101&BZOJ2301][POI2007]Zap [HAOI2011]Problem b|莫比乌斯反演
		对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d. 我们可以令F[n]=使得n|(x,y)的数对(x,y)个数 这个很容易得到,只需要让x, ... 
- Bzoj-2301 [HAOI2011]Problem b 容斥原理,Mobius反演,分块
		题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 题意:多次询问,求有多少对数满足 gcd(x,y)=k, a<=x<=b ... 
- 【数论】【莫比乌斯反演】【线性筛】bzoj2301 [HAOI2011]Problem b
		对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 100%的数据满足:1≤n≤50000,1≤a≤b ... 
- 【BZOJ2301】【HAOI2011】Problem b [莫比乌斯反演]
		Problem b Time Limit: 50 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 对于给出的n个询问,每次 ... 
随机推荐
- 20155339 2016-2017-2 《Java程序设计》第十周学习总结
			20155339 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 计算机网络概述 在计算机网络中,现在命名IP地址的规定是IPv4协议,该协议规定每个IP地址 ... 
- 20145226夏艺华 网络对抗技术EXP4 恶意代码分析
			20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ... 
- 深入理解redis复制原理
			原文:深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof ... 
- CentOS-6.4 minimal - 安装VMware Tools(linux)
			本文参考自:http://www.cnblogs.com/xyq/p/4068018.html 1.挂载光驱 2./mnt下面默认显示以下文件 3.卸载/mnt 4.点击安装VMware Tools ... 
- vscode eslint格式化配置
			{ // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize &qu ... 
- Http协议工作特点和工作原理笔记
			工作特点: (1)B/S结构(Browser/Server,浏览器/服务器模式) (2)无状态 (3)简单快速.可使用超文本传输协议.灵活运行传输各种类型 工作原理: 客户端发送请求浏览器 -> ... 
- InTelliJ 字体调整
			Java IDE 工具InTelliJ 调整字体大小 1.File -> Settings 2.左上的搜索框中输入 font. 等待自动查找结果. 3.修改size 大小 
- 算法与AI的暗黑面:3星|《算法的陷阱:超级平台、算法垄断与场景欺骗》
			算法的陷阱:超级平台.算法垄断与场景欺骗 全书讲算法与AI的暗黑面:价格歧视.导致算法军备竞赛.导致商家降价冲动降低.平台作恶(向劣质商家收费导致品质下降.与开发商一起分析用户隐私)等. 作者从商业. ... 
- Teaching Machines to Understand Us 让机器理解我们 之一 引言
			Teaching Machines to Understand Us By Tom Simonite MIT Technology Review Vol.118 No.5 2015 让机器理解我 ... 
- 如何使用openstack OCL
			本节首先讨论 image 删除操作,然后介绍 OpenStack CLI 的使用方法,最后讨如何 Troubleshoot. Web UI 删除 image admin 登录后,Project -&g ... 
