[题解] LuoguP2257 YY的GCD
给\(n,m\),让你求
\]
有\(T\)组询问\((T \le 10^4,n,m\le 10^7)\)。
枚举质数\(p\),然后柿子变成
\]
等价于
\]
因为把\(\left\lfloor n/p \right\rfloor,\left\lfloor m/p\right\rfloor\)以内互质的一对数乘上\(p\)就是\(\gcd=p\)的数了。
令\(S(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m [\gcd(i,j)=1]\),由于\(\mu\)的性质\([n=1]=\sum\limits_{d\mid n} \mu(d)\),所以
\]
又因为\(\left\lfloor\frac{\left\lfloor\frac{n}{p}\right\rfloor}{d}\right\rfloor=\left\lfloor\frac{n}{dp}\right\rfloor\),所以柿子是
\]
可以枚举\(k=dp\),有
\]
令\(f(n)=\sum\limits_{p\mid n} \mu(\frac{n}{p})\),预处理出\(f\)的前缀和,数论分块就好了。
并不会算预处理的复杂度qwq...
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for (int i=(a);i<(b);++i)
#define per(i,a,b) for (int i=(a)-1;i>=(b);--i)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
typedef double db;
typedef long long ll;
typedef pair<int,int> PII;
typedef vector<int> VI;
const int maxn=1e7,N=maxn+10;
int vis[N],p[N],pn,mu[N],sum[N];
#define ss(l,r) (sum[r]-sum[l-1])
void init(int n) {
mu[1]=1;
rep(i,2,n+1) {
if(!vis[i]) {p[pn++]=i;mu[i]=-1;}
for(int j=0;j<pn&&i*p[j]<=n;j++) {
vis[i*p[j]]=1;
if(i%p[j]==0) {mu[i*p[j]]=0;break;}
else mu[i*p[j]]=-mu[i];
}
}
rep(i,0,pn) for(int j=p[i];j<=n;j+=p[i])
sum[j]+=mu[j/p[i]];
rep(i,1,n+1) sum[i]+=sum[i-1];
}
ll solve(int n,int m) {
int tn=min(n,m); ll ans=0;
for(int l=1,r=0;l<=tn;l=r+1) {
r=min(n/(n/l),m/(m/l));
ans+=1ll*(n/l)*(m/l)*ss(l,r);
}
return ans;
}
int main() {
#ifdef LOCAL
freopen("a.in","r",stdin);
#endif
init(maxn);
int _,n,m;for(scanf("%d",&_);_;_--) {
scanf("%d%d",&n,&m);
printf("%lld\n",solve(n,m));
}
return 0;
}
[题解] LuoguP2257 YY的GCD的更多相关文章
- 题解 P2257 YY的GCD
P2257 YY的GCD 解题思路 果然数论的题是真心不好搞. 第一个莫比乌斯反演的题,好好推一下式子吧..(借鉴了blog) 我们要求的答案就是\(Ans=\sum\limits_{i=1}^{n} ...
- LuoguP2257 YY的GCD
题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于 ...
- [BZOJ2820]YY的GCD
[BZOJ2820]YY的GCD 试题描述 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少 ...
- 【BZOJ2820】YY的GCD(莫比乌斯反演)
[BZOJ2820]YY的GCD(莫比乌斯反演) 题面 讨厌权限题!!!提供洛谷题面 题解 单次询问\(O(n)\)是做过的一模一样的题目 但是现在很显然不行了, 于是继续推 \[ans=\sum_{ ...
- 【LG2257】YY的GCD
[LG2257]YY的GCD 题面 洛谷 题解 题目大意: 给定\(n,m\)求\(\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)为质数]\). 我们设\(f(x)=[x为 ...
- Bzoj 2820: YY的GCD(莫比乌斯反演+除法分块)
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x& ...
- BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1624 Solved: 853[Submit][Status][Discu ...
- bzoj 2820 YY的GCD 莫比乌斯反演
题目大意: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 这里就抄一下别人的推断过程了 后面这个g(x) 算的方法就是在线性 ...
- 【BZOJ】【2820】YY的GCD
莫比乌斯反演 PoPoQQQ讲义第二题. 暴力枚举每个质数,然后去更新它的倍数即可,那个g[x]看不懂就算了…… 为什么去掉了一个memset就不T了→_→…… /****************** ...
随机推荐
- 安卓LED跑马灯 超炫酷的表白神器破解版
链接:https://pan.baidu.com/s/11Wxll4iLdcEPq0wUBK6Ong 提取码:all4
- windows下安装subversion
前言: 最近在写windows版本下svn hooks(钩子) post-commit的实现.所以会需要在windows下安装相应的subversion.经过一番查询后,决定使用VisualSVN ...
- Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2)C
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;string s;pair<int,in ...
- spring mvc绑定参数之 类型转换 有三种方式:
spring mvc绑定参数之类型转换有三种方式: 1.实体类中加日期格式化注解(上次做项目使用的这种.简单,但有缺点,是一种局部的处理方式,只能在本实体类中使用.方法三是全局的.) @DateTim ...
- Django 学习组件分页器与自定制分页器
一.Django 分页器 1.django的分页器基础版 (1)首先是基础数据分别为 from django.db import models # Create your models here. c ...
- 解决Python2中文ascii编码的方法
在YiiChina签到的时候,经常会看到有人在说说里面发群主是最帅的,yii 是 PHP 最好的框架,没有之一,就想到使用一言,在每天签到的时候也发一句话 同时使用方糖将内容推送到微信,防止有什么不对 ...
- MyBatis模糊查询异常: '%${}''读取jdbc属性
'%${}''总是传root, 后来发现${username}读取了jdbc里面的属性username,于是将jdbc属性名修改,成功
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:文本框(Textarea)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Spark教程——(4)Spark-shell调用SQLContext(HiveContext)
启动Spark-shell: [root@node1 ~]# spark-shell Setting default log level to "WARN". To adjust ...
- ELK/EFK——日志收集分析平台
ELK——日志收集分析平台 ELK简介:在开源的日志管理方案之中,最出名的莫过于ELK了,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.1)ElasticSea ...