BZOJ 2820: YY的GCD
2820: YY的GCD
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 1705 Solved: 908
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
10 10
100 100
Sample Output
2791
HINT
T = 10000
N, M <= 10000000
Source
分析:
我们很容易就可以得出一下这个复杂度爆炸的式子:
$\sum_ {prime(p)}^{n} \sum_ {d=1}^{n/p} μ(d) \left\lfloor \frac{n}{pd} \right\rfloor \left\lfloor \frac{m}{pd} \right\rfloor$
但是有10000个case,这个复杂度明显爆炸...我们设$k=pd$
可以得到一下式子:
$\sum_ {k=1}^{n} \left\lfloor \frac{n}{k} \right\rfloor \left\lfloor \frac{m}{k} \right\rfloor \sum_ {prime(p) p\mid k} μ(\frac {k}{p})$
然后对于后面的μ我们可以预处理前缀和,这样单个case复杂度大概可以降到$sqrt(n)+sqrt(m)$...
代码:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
//by NeighThorn
#define int long long
using namespace std;const int maxn=10000000+5;int n,m,cas,cnt,f[maxn],mu[maxn],pri[maxn],vis[maxn];inline void prework(void){mu[1]=1;for(int i=2;i<=10000000;i++){if(!vis[i])pri[++cnt]=i,mu[i]=-1;for(int j=1;j<=cnt&&i*pri[j]<=10000000;j++){vis[i*pri[j]]=1;if(i%pri[j]==0){mu[i*pri[j]]=0;break;}mu[i*pri[j]]=-mu[i];}}for(int i=1;i<=cnt;i++)for(int j=1;pri[i]*j<=10000000;j++)f[pri[i]*j]+=mu[j];for(int i=1;i<=10000000;i++)f[i]+=f[i-1];
}signed main(void){scanf("%lld",&cas);prework();while(cas--){scanf("%lld%lld",&n,&m);if(n>m)swap(n,m);int ans=0,r;for(int i=1;i<=n;i=r+1){r=min(n/(n/i),m/(m/i));ans+=(f[r]-f[i-1])*(n/i)*(m/i);}printf("%lld\n",ans);}return 0;
}
By NeighThorn
转载于:https://www.cnblogs.com/neighthorn/p/6415260.html
BZOJ 2820: YY的GCD相关推荐
- BZOJ 2820 YY的GCD 莫比乌斯反演
2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...
- bzoj 2820: YY的GCD(莫比乌斯反演)
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2111 Solved: 1137 [Submit][Status][Di ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- [BZOJ]2820: YY的GCD
Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1< ...
- BZOJ 2820 YY的GCD(莫比乌斯反演)
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对,kAc这种傻×必 ...
- BZOJ 2820 YY的GCD 莫比乌斯反演
题意:链接 方法:莫比乌斯反演 解析: 这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力.只是当你A掉这道题后发现正解?都将近5s时.就放弃了这个念头. 相同的式子我们能够直接搬过来.p ...
- [BZOJ 2820] YY的GCD
题意 求下式的值: \[ \sum_{i=1}^n\sum_{j=1}^m \mathbb{P}(\gcd(i,j)) \] 其中 \(\mathbb{P}(x)\) 当 \(x\) 为质数时为 \( ...
- 【BZOJ】2820: YY的GCD
[题意]给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对.T<=10^4,N,M<=10^7. [算法]数论(莫比乌 ...
- 【BZOJ 2820】 YY的GCD
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Submit: 807 Solved: 404 [ Submit][ Status] ...
最新文章
- 每日一皮:一直认为写代码的自己有点小帅
- 怎么配置php服务器时间,php如何设置服务器时间
- php生成图片验证码-附五种验证码
- HAproxy Json日志格式配置
- 【Java】从键盘中任意输入一个字符,判断该字符的类别
- JAVA线程并发数量控制_Java并发工具类(三):控制并发线程数的Semaphore
- 14-2 正则表达式
- 记事本如何运行python代码_利用Python开发实现简单的记事本
- python画图小猪佩奇_用Python代码画小猪佩奇 Python简直太神奇了
- 多小区下小区上行速率的计算(3)
- RTI_DDS自定义插件开发 2 NDDS传输插件API
- DSP存储器与寄存器管理
- 百度招聘的一个小彩蛋
- 闰年,闰月对应的天数快速记忆法
- 吴永祥:政府大数据服务平台建设之道
- mybatis 连表查询,子查询 collection,返回 vo
- 用HTML搭建3D立体相册网页,可放大缩小
- 搜狗拼音带来的俩个烦人的弹窗解决方法
- linux 进入recovery模式,recovery模式怎么进入,教您recovery模式怎么进入
- 初中级前端面试题(万字长文)
热门文章
- python定义类的程序_python扫码签到程序python中如何定义类
- mysql java.util.date_jdbc-java.sql.date和java.util.date之间转换
- [译]CSS3实现柱状图的3D立体动画效果
- Magento2后台忘记密码
- 使用根轨迹分析的动态补偿设计
- mysql-installer-community-5.5.29.0.msi 下载
- 从零搭建LNMP环境(三) - 安装MySQL数据库服务器
- 在.net中读写config文件的各种方法(转)
- Linux下文件的权限管理及网络连接
- Python多种方式实现”欢迎小红“