bzoj2301: [HAOI2011]Problem b懵逼乌斯反演
属于结果的和好求但是结果不好求的题
(轻易能得到以k的倍数为最大公约数的对数,但是不好直接求k)
所以一波反演结束
其实反演的时候完全没有反演的感觉,就是不停地恒等变形
算是懵逼乌斯反演最简单的例题
#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,c,d,k,mu[],p[];bool o[];
int calc(int n,int m)
{
int ret=;if(n>m) swap(n,m);
for(int i=,j;i<=n;i=j+)
{
j=min(n/(n/i),m/(m/i));
ret+=(n/i)*(m/i)*(mu[j]-mu[i-]);
}
return ret;
}
int main()
{
scanf("%d",&n);
m=;mu[]=;
for(int i=;i<=;i++)
{
if(!o[i]) p[++m]=i,mu[i]=-;
for(int j=;j<=m;j++)
if(i*p[j]<=)
{
o[i*p[j]]=;
if(i%p[j]==) break;
mu[i*p[j]]=mu[i]*mu[p[j]];
}
else break;
}
for(int i=;i<=;i++)
mu[i]+=mu[i-];
for(int i=;i<=n;i++)
{
scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
a=(a-)/k;b/=k;c=(c-)/k;d/=k;
printf("%d\n",calc(b,d)-calc(b,c)-calc(a,d)+calc(a,c));
}
return ;
}
改天(老是拖延。。。)总结一下懵逼乌斯反演相关知识点
bzoj2301: [HAOI2011]Problem b懵逼乌斯反演的更多相关文章
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
- 莫(meng)比(bi)乌斯反演--BZOJ2301: [HAOI2011]Problem b
n<=50000个询问,每次问a<=x<=b,c<=y<=d中有多少gcd(x,y)=K的(x,y).a,b,c,d,K<=50000. 这大概是入门题辣..这里记 ...
- bzoj2301 [HAOI2011]Problem b【莫比乌斯反演 分块】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 很好的一道题.首先把每个询问转化为4个子询问,最后的结果就是这四个子询问的记过加加减减 ...
- BZOJ2301: [HAOI2011]Problem b 莫比乌斯反演
分析:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 然后对于求这样单个的gcd(x,y)=k的, ...
- 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 —— 莫比乌斯反演+容斥原理
题意 给定a, b, c, d, k,求出: \[\sum_{i=a}^b\sum_{j=c}^d[gcd(i, j) = k]\] 题解 为方便表述,我们设 \[calc(\alpha, \beta ...
- [luogu2522][bzoj2301][HAOI2011]Problem b【莫比乌斯反演】
传送门:https://www.luogu.org/problemnew/show/P2522 题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...
- BZOJ2301:[HAOI2011]Problem b(莫比乌斯反演,容斥)
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...
随机推荐
- 安装Windows2008操作系统 - 初学者系列 - 学习者系列文章
Windows2008这款服务器操作系统不知道有多少服务器在使用,毕竟前面有经典的2003系统,后续有2012操作系统.具体就不讨论这些了.下面就对Windows2008服务器操作系统的安装进行介绍. ...
- 学习html5的WebSocket连接
1.什么是WebSocket WebSocket 是一种自然的全双工.双向.单套接字连接.使用WebSocket,你的HTTP 请求变成打开WebSocket 连接(WebSocket 或者WebSo ...
- Unity 3.5
ASP.NET Web Forms 的 DI 應用範例 跟 ASP.NET MVC 与 Web API 比起来,在 Web Forms 应用程式中使用 Dependency Injection 要来的 ...
- DDD实践(一)
DDD实践切入点(一) 前两篇:大型系统的支撑,应用系统开发思想的变迁 之前大致说了使用DDD的前期准备,现在可以真正开始实践了,以我刚刚结束的一个简单的经典DDD方式的项目为例子,当然由于比较简单, ...
- CentOS 6.5玩转自制Linux、远程登录及Nginx安装测试
前言 系统定制在前面的博文中我们就有谈到过了,不过那个裁减制作有简单了点,只是能让系统跑起来而,没有太多的功能,也没的用户登录入口,而这里我们将详细 和深入的来谈谈Linux系统的详细定制过程和 ...
- 测试驱动 ASP.NET MVC Type Aliase
Type Aliase 去掉Scala的糖衣(4) -- Type Aliase 我的新博客地址:http://cuipengfei.me/blog/2013/12/23/desugar-scala- ...
- tornado\ioloop.py单例
@staticmethod def instance(): """Returns a global `IOLoop` instance. Most application ...
- Leetcode: UniquePath II
Description: Follow up for "Unique Paths": Now consider if some obstacles are added to the ...
- Linux网络编程(二)
Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ...
- ssdt_hook NtOpenProcess
获取ssdt表中所有函数的地址 for (int i = 0; i < KeServiceDescriptorTable->NumberOfServices; i++) { ...