BZOJ 2820 YY的GCD 莫比乌斯反演
题意:链接
方法:莫比乌斯反演
解析:
这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力。只是当你A掉这道题后发现正解?都将近5s时。就放弃了这个念头。
相同的式子我们能够直接搬过来。p是质数
∑p∑1<=x<=a∑1<=y<=b(gcd(x,y)==p)
∑p∑1<=x<=a/p∑1<=y<=b/p(gcd(x,y)==1)
∑p∑1<=x<=a/p∑1<=y<=b/p∑d|(x,y)μ(d)
∑p∑d=1min(a/p,b/p)μ(d)[apd][bpd]
设pd=k
∑k=1min(a,b)∑p且p|kμ(kp)[apd][bpd]
则设∑p且p|kμ(kp)=F(k)
发现F(k)的取值仅仅与选取的p与k的关系有关
F(k)=μ(pdp1)
当p|d时
①p=p1 F(k)=μ(d)
②p!=p1 F(k)=0
故F(k)=μ(d)
当p不整除d时
①p=p1 F(k)=μ(d)
②p!=p1 F(k)=−F(d)
故F(k)=μ(d)−F(d)
之后的内容和1101一样分块
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 10000010
using namespace std;
typedef long long ll;
int tot,t;
int a,b,d;
int prime[N];
bool f[N];
int miu[N];
ll g[N];
void sieve()
{miu[1]=1;for(int i=2;i<=10000000;i++){if(!f[i]){prime[++t]=i;miu[i]=-1;}for(int j=1;j<=t&&i*prime[j]<=10000000;j++){f[i*prime[j]]=1;if(i%prime[j]==0){miu[i*prime[j]]=0;break;}else miu[i*prime[j]]=-miu[i];}}for(int i=1;i<=t;i++){for(int j=1;j*prime[i]<=10000000;j++){g[j*prime[i]]+=miu[j];}}for(int i=1;i<=10000000;i++){g[i]+=g[i-1];}
}
int main()
{sieve();scanf("%d",&tot);for(int i=1;i<=tot;i++){scanf("%d%d",&a,&b);int a1=a,b1=b;int x=min(a1,b1);int pos;ll ans=0;for(int i=1;i<=x;i=pos+1){pos=min((a1/(a1/i)),(b1/(b1/i)));ans+=(g[pos]-g[i-1])*(a1/i)*(b1/i);}printf("%lld\n",ans);}
}
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 - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- 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
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1705 Solved: 908 [Submit][Status][Dis ...
- 【bzoj2820】YY的GCD 莫比乌斯反演
题目描述 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是 ...
- [洛谷P2257] YY的GCD (莫比乌斯反演)
YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...
- BZOJ 2820 YY的GCD(莫比乌斯反演)
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对,kAc这种傻×必 ...
- YY的GCD 莫比乌斯反演
---题面--- 题解: $ans = \sum_{x = 1}^{n}\sum_{y = 1}^{m}\sum_{i = 1}^{k}[gcd(x, y) == p_{i}]$其中k为质数个数 $$ ...
- [BZOJ]2820: YY的GCD
Time Limit: 10 Sec Memory Limit: 512 MB Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1< ...
最新文章
- 【面试 多线程】【第九篇】多线程的问题
- 基于matlab的人脸五官边缘检测方法,基于MATLAB的人脸识别系统的设计
- mysql查询今天_昨天_7天_近30天_本月_上一月 数据_mysql查询今天、昨天、7天、近30天、本月、上一月 数据...
- Spring AOP两种实现机制是什么?
- php curl cookie,php中curl获取返回页面的cookie
- 年夜饭之 -- 红烧羊肉
- 常用作业定义的T-SQL模板.sql
- 特殊功能,实现方法!
- 豆瓣排名前500的电视剧
- 揭秘淘宝平台广告策略,拆解最佳投放实践
- 【Review】数据结构线性表,数组算法(串模式匹配克鲁德、螺旋矩阵四墙)
- 不能与牛肉一起吃的食物
- 游戏打的菜?当然是延迟的锅啦~
- 华南理工计算机电路基础试题,2017年华南理工大学计算机电路基础
- LUA语言教程 [转]
- html5游戏开发_HTML5游戏开发–第9课
- Javascript学习历程之表格与表单
- 3ds Max 2017
- java获取当前时间前一天,前一月,前一年
- Openstack基础环境交换机常用配置(CISCO 3750G为例).md
热门文章
- 3w最简单led灯电路图_led灯驱动电源电路图大全(六款模拟电路设计原理图详解)...
- .NET中书写XML的一种简单方法
- 自动驾驶汽车的未来,“锂电池先驱”:需要更强劲的电池
- 03、Vue.js---自定义指令
- 阿里云异构计算产品家族亮相 覆盖全场景AI和高性能计算需求
- mycncart 1.4.0.0 新版本发布
- Android Studio调试功能使用总结
- 【洛谷】【动态规划/二维背包】P1855 榨取kkksc03
- 什么是跨域,什么是同源
- SELECT中常用的子查询操作