双倍经验题。

柯以看成是P3455的扩展。

首先这个范围内是数我们柯以用类似二维前缀和的思想,看成:

\(ans(a,b,c,d)=ans(1,b,1,d)+ans(1,a-1,1,c-1)-ans(1,b,1,c-1)-ans(1,a-1,1,d)\)

然后计算每一个ans就很好算了。

问题是,怎么算?

每一个ans都是从1开始,柯以看成:

\[\sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)=d]
\]

然后我们开始推式子:

\[\sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)=d]
\]

同时除以d:

\[\sum_{i=1}^{\lfloor \frac {n} {d} \rfloor} \sum_{j=1}^{\lfloor \frac {m} {d} \rfloor} [\gcd(i,j)=1]
\]

又因为

\[[\gcd(i,j)=1]=e(\gcd(i,j))
\]

而$ 1*\mu=e $

所以

\[[\gcd(i,j)=1]=\sum_{k|gcd(i,j)}\mu(k)
\]

然后就变成:

\[\sum_{i=1}^{\lfloor \frac {n} {d} \rfloor} \sum_{j=1}^{\lfloor \frac {m} {d} \rfloor} \sum_{k|\gcd(i,j)} \mu(k)
\]

换一个顺序,枚举 \(k\):

\[\sum_{k=1}^{\min(n,m)} \mu(k) * \lfloor \frac {n} {dk} \rfloor * \lfloor \frac{m} {dk} \rfloor
\]

这东西柯以用数论分块算。

所以只要先预处理 \(\mu\) 的前缀和,然后数论分块就行了。

Code:

#include<iostream>
const int M=5e4;
int T,a,b,c,d,e,top,mu[M+5],pri[M+5],zhi[M+5];
inline int min(const int&a,const int&b){return a<b?a:b;}
int Ask(int n,int m)//处理答案
{
int t=min(n/=e,m/=e),L,R,ans=0;
for(L=1;L<=t;L=R+1)
{
R=min(n/(n/L),m/(m/L));
ans+=(mu[R]-mu[L-1])*(n/L)*(m/L);
}
return ans;
}
signed main()
{
int i,j,x;mu[1]=zhi[1]=1;
for(i=2;i<=M;++i)//线性筛
{
if(!zhi[i])pri[++top]=i,mu[i]=-1;
for(j=1;j<=top&&(x=i*pri[j])<=M;++j)
{
zhi[x]=1;
if(i%pri[j])mu[x]=-mu[i];
else break;
}
mu[i]+=mu[i-1];//前缀和
}
for(std::cin>>T;T;--T)
{
std::cin>>a>>b>>c>>d>>e;--a;--c;
int ans=Ask(b,d)+Ask(a,c)-Ask(b,c)-Ask(a,d);
std::cout<<ans<<"\n";
}
}

LGP2522题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. Mysql 占用字节大小

    数字类型 类型 字节数 TINYINT 1 字节 SMALLINT 2 个字节 MEDIUMINT 3 个字节 INT 4 个字节 INTEGER 4 个字节 BIGINT 8 个字节 FLOAT(X ...

  2. go基础——数组array

    package main import "fmt" /* 数组: array数组属于值类型,存储的是数值本身,数据传递给其他变量时传递的是数据的副本. slice,map等属于引用 ...

  3. linux_15

    实现基于MYSQL验证的vsftpd虚拟用户访问 配置samba共享,实现/www目录共享 使用rsync+inotify实现/www目录实时同步 LVS调度算法总结 LVS的跨网络DR实现

  4. 30天自制操作系统day2汇编语言

    <30天自制操作系统>一书中第1天和第二天中有关汇编语言的程序的理解 ; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载地址 ; 以下的记述用于标准FAT12格 ...

  5. Solution -「JSOI 2019」「洛谷 P5334」节日庆典

    \(\mathscr{Description}\)   Link.   给定字符串 \(S\),求 \(S\) 的每个前缀的最小表示法起始下标(若有多个,取最小的).   \(|S|\le3\time ...

  6. Solution -「多校联训」种蘑菇

    \(\mathcal{Description}\)   Link.   给定一棵含有 \(n\) 个结点的树,设 \(S\) 为其中的非空联通子集,求 \[\sum_{S}(\gcd_{u\in S} ...

  7. 面向对象—多态、鸭子类型(Day21)

    编程原则java具有自己的编程原则和设计模式,不能多继承.python的编程原则:1.开放封闭原则:开放是对扩展是开放的,封闭是对修改是封闭的(已经写完的代码程序是不能修改的).2.依赖倒置原则:高层 ...

  8. MCU与MPU的基本区别

    MCU与MPU的基本区别 题记:一般来说,mpu的价格是mcu的数倍. 参考资料: http://www.elecfans.com/d/1564656.html https://zhuanlan.zh ...

  9. 本地虚拟机在NAT网络连接模式下如何设置才可以访问外网以及使用Xshell远程连接

    本文演示环境: 笔记本电脑系统:windows 7 虚拟机系统:CentOS 7 虚拟化软件:VMware Workstation 12 远程连接工具:Xshell 5 第一步: 打开虚拟网络编辑器 ...

  10. Django整体模型理解(1)

    Django大概理解 *models:  设计一个模型,即在数据库中设计一个表,一个模型就是对应一个数据库中的表:models是一个类,类名就是表名,而类的属性就是表的字段.如下例子设计了两个表: f ...