题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k 输出格式: 共n行,每行一个整数表示满足要求的数对(x,y)的个数 输入输出样例 输入样例#1: 复制 2 2 5 1 5 1 1 5 1 5 2 输出样例#1: 复制 14 3 说明 100%的数据满足:1≤n≤50000,1≤a≤b≤500…
[Update] 我好像现在都看不懂我当时在写什么了=-= \(Description\) 求\(\sum_{i=a}^b\sum_{j=c}^d[(i,j)=k]\) \(Solution\) 首先是把下界作为1.可以化为求 \[\sum_{i=1}^{\lfloor\frac{N}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{M}{k}\rfloor}[(i,j)=1]\] 说明:大概就我不能直接看出来了.. 首先要求\([1,N]\)中有多少\(i,i|k\),再…
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k Output 共n行,每行一个整数表示满足要求的数对(x,y)的个数 Sample Input 2 2 5 1 5 1 1 5 1 5 2 Sample Output 14 3 HINT 100%的数据满足:1≤n≤50000,1≤a≤b≤50…
题目 P2522 [HAOI2011]Problem b 解析: 具体推导过程同P3455 [POI2007]ZAP-Queries 不同的是,这个题求的是\(\sum_{i=a}^b\sum_{j=c}^dgcd(i,j)=k\) 像二维前缀和一样容斥一下,输出就完了. 根据luogu某大佬的说法 开longlong的话会TLE.. 代码 //莫比乌斯反演 #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10…
题意:求$\sum_{i=a}^{b}\sum_{j=c}^{d}[gcd(i,j)==k]$(1<=a,b,c,d,k<=50000). 是洛谷P3455 [POI2007]ZAP-Queries加强版,多了下界. 设$f(n,m)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==k]$ 根据容斥可以显然的得出Ans=f(b,d)-f(b,c-1)-f(a-1,d)+f(a-1,c-1). 对于f(n,m)的求解: $f(n,m)=\sum_{i=1}^{n}\…
传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Queries 然后只要在这上面加个容斥就好了,答案就是$ans(b,d)-ans(b,c-1)-ans(a-1,d)+ans(a-1,c-1)$ //minamoto #include<iostream> #include<cstdio> #define ll long long using…
题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数n,接下来n行每行五个整数,分别表示a.b.c.d.k 输出格式: 共n行,每行一个整数表示满足要求的数对(x,y)的个数 输入输出样例 输入样例#1: 复制 2 2 5 1 5 1 1 5 1 5 2 输出样例#1: 复制 14 3 说明 100%的数据满足:1≤n≤50000,1≤a≤b≤500…
Portal Description 进行\(T(T\leq10^5)\)次询问,每次给出\(x_1,x_2,y_1,y_2\)和\(d\)(均不超过\(10^5\)),求\(\sum_{i=x_1}^{x_2} \sum_{j=y_1}^{y_2} [gcd(i,j)=d]\). Solution 莫比乌斯反演入门题. 设\(calc(n,m)\)表示\(i\in[1,n],j\in[1,m]\)且\(gcd(i,j)=d\)的数对\((i,j)\)的个数.那么简单地进行容斥,可知\(ans=…
这道题和 HDU-1695不同的是,a,c不一定是1了.还是莫比乌斯的套路,加上容斥求结果. 设\(F(n,m,k)\)为满足\(gcd(i,j)=k(1\leq i\leq n,1\leq j\leq m)\)的对数.则\(ans = F(b,d,k)-F(a-1,d,k)-F(c-1,b,k)+F(a-1,c-1,k)\) 预处理莫比乌斯函数的前缀和,分块加速求和即可 #include<bits/stdc++.h> using namespace std; typedef long lon…
设$f(d)=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==d],\\F(n)=\sum_{n|d}f(d)=\lfloor \frac{N}{n} \rfloor \lfloor \frac{M}{n} \rfloor$ 则$f(n)$ $=\sum_{n|d}\mu(\frac{n}{d})F(d)$ $=\sum_{n|d}\mu(\frac{n}{d})\lfloor \frac{N}{d} \rfloor \lfloor \frac{M}{d} \rfloor$…