</pre><pre code_snippet_id="507886" snippet_file_name="blog_20141104_2_5383199" name="code" class="cpp">#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <cstdio>
#include <cstring>
using namespace std; typedef long long LL; inline int read(){
int x = 0,f = 1; char ch = getchar();
while(ch < '0'||ch > '9'){if(ch == '-')f=-1;ch = getchar();}
while(ch >= '0'&&ch <= '9'){x = x * 10 + ch -'0';ch = getchar();}
return x*f;
} ////////////////////////////////////////////////////////////////// /*
算法:容斥原理 + 分块
题目:
对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,
且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。 1≤n≤50000,1≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000 */ const int MAXN = 50000 + 10;
int tot;
LL mu[MAXN+1],sum[MAXN+1],pri[MAXN+1];
bool mark[MAXN]; void get(){
mu[1] = 1;
for(int i = 2;i <= MAXN;++i){
if(!mark[i])pri[tot++] = i,mu[i] = -1;
for(int j = 0;j < tot&&i*pri[j] <= MAXN;++j){
mark[i*pri[j]] = 1;
if(i % pri[j]==0){mu[i*pri[j]] = 0; break;}
else mu[i*pri[j]] = -mu[i];
}
} for(int i = 1;i <= MAXN;++i) //预处理前缀
sum[i] = sum[i-1] + mu[i];
} int cal(int n,int m){
if(n > m) swap(n,m);
LL ans = 0,pos;
for(LL i = 1;i <= n;i = pos + 1){
pos = min(n/(n/i),m/(m/i)); //分块
ans += (sum[pos] - sum[i-1]) * (n/i) * (m/i);
}
return ans;
} int main()
{
get();
int T = read();
while(T--){
int a = read(),b = read(),c = read(),d = read(),k = read();
LL ans = cal(b/k,d/k);
ans -= cal((a-1)/k,d/k);
ans -= cal(b/k,(c-1)/k);
ans += cal((a-1)/k,(c-1)/k);
printf("%lld\n",ans);
}
return 0;
}

版权声明:本文博主原创文章。博客,未经同意不得转载。

[bzoj2301: [HAOI2011]Problem b] 乞讨的更多相关文章

  1. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  2. Bzoj-2301 [HAOI2011]Problem b 容斥原理,Mobius反演,分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 题意:多次询问,求有多少对数满足 gcd(x,y)=k, a<=x<=b ...

  3. 【数论】【莫比乌斯反演】【线性筛】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 ...

  4. bzoj2301 [HAOI2011]Problem b【莫比乌斯反演 分块】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2301 很好的一道题.首先把每个询问转化为4个子询问,最后的结果就是这四个子询问的记过加加减减 ...

  5. BZOJ2301 [HAOI2011]Problem b

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  6. 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的, ...

  7. bzoj2301: [HAOI2011]Problem b懵逼乌斯反演

    属于结果的和好求但是结果不好求的题 (轻易能得到以k的倍数为最大公约数的对数,但是不好直接求k) 所以一波反演结束 其实反演的时候完全没有反演的感觉,就是不停地恒等变形 算是懵逼乌斯反演最简单的例题 ...

  8. [luogu2522][bzoj2301][HAOI2011]Problem b【莫比乌斯反演】

    传送门:https://www.luogu.org/problemnew/show/P2522 题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...

  9. 题解【bzoj2301 [HAOI2011]Problem b】

    Description 求有多少个数对 \((x,y)\) ,满足$ a \leq x \leq b$ ,\(c \leq y \leq d\) ,且 \(\gcd(x,y) = k\),\(\gcd ...

随机推荐

  1. 写PPT的方法

    这个方法是今天同事的方法,看到他的PPT简洁高效,明了,记下了他的方法: 写文字:写框架,这个框架或者内容可以是word形式的,目的是展示内容 找模板:在搜集到的各种ppt模板中选几个适合自己文字的页 ...

  2. 创建一个jQuery UI的垂直进度条效果

    日期:2013-9-24  来源:GBin1.com 在线演示 缺省的jQuery UI只有水平的进度条效果,没有垂直的进度条效果,仅仅重新定义JQuery UI的CSS不能解决这个问题. 这里我们扩 ...

  3. java集合总结【转】

    Map.Set.Iterator迭代详解 Map接口定义了四种类型的方法,每个Map都包含这些方法. equals(Object o)比较指定对象与此Map的等价性. hashCode()返回此Map ...

  4. fedora 20下安装vim的C++补全插件clang_complete

    1.安装clang yum install clang 2.安装clang_complete插件 git clone https://github.com/Rip-Rip/clang_complete ...

  5. Android Path

    外置SDCard(TF卡) 1. SDCard的挂载路径(根据系统不同的ROM挂载的路径不同,以下列举几个是从旧系统到新系统的表现形式) /sdcard/external_sd /mnt/extSdC ...

  6. Linux串口编程のtermios 结构

    termios 结构是在POSIX规范中定义的标准接口,它类似于系统V中的termio接口,通过设置termios类型的数据结构中的值和使用一小 组函数调用,你就可以对终端接口进行控制. 可以被调整来 ...

  7. iOS-OC-基础-NSArray常用方法

    NSArray常用方法和属性 // ——————————————————————数组常用方法—————————————————————— // 1.计算数组元素的个数: count NSArray * ...

  8. JS正则表达式---分组

    JS正则表达式---分组 之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达 ...

  9. (原)caffe中通过图像生成lmdb格式的数据

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5909121.html 参考网址: http://www.cnblogs.com/wangxiaocvp ...

  10. Jquery网页选项卡应用

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...