GCD SUM 强大的数论,容斥定理
GCD SUM
Problem Description
执行如下程序:
long long ans = 0,ansx = 0,ansy = 0;
for(int i = 1; i <= N; i ++)
for(int j = 1; j <= M; j ++)
if(gcd(i,j) == 1) ans ++,ansx += i,ansy += j;
cout << ans << " " << ansx << " " << ansy << endl;
Input
多组数据,每行两个数N,M(1 <= N,M <= 100000)。
Output
Sample Input
5 5
1 3
Sample Output
19 55 55
3 3 6
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define MAX 100010
#define ll long long
ll mu[MAX]= {},mb[MAX]= {};
void init()
{
int i,j;
for(i=; i<MAX; i++)
{
if(!mu[i])
{
mu[i]=i;
if(i>)continue;
j=i*i;
while(j<MAX)
{
mu[j]=i;
j+=i;
}
}
}
mu[]=;
for(i=; i<MAX; i++)
{
if((i/mu[i])%mu[i]==)mu[i]=;
else mu[i]=-mu[i/mu[i]];
}
for(i=; i<MAX; i++)
mb[i]=mu[i]*i,mu[i]+=mu[i-],mb[i]+=mb[i-];
}
void solve(int n,int m)
{
ll ans,ansx,ansy,x,y;
ans=ansx=ansy=;
int i,j,k;
for(i=(n>m?m:n);i>;)
{
x=n/i,y=m/i;
k=max(n/(x+),m/(y+));
ans+=x*y*(mu[i]-mu[k]);
ansx+=(mb[i]-mb[k])*y*(+x)*x/;
ansy+=(mb[i]-mb[k])*x*(+y)*y/;
i=k;
}
printf("%lld %lld %lld\n",ans,ansx,ansy);
}
int main()
{
init();
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
solve(n,m);
}
}
GCD SUM 强大的数论,容斥定理的更多相关文章
- HDU 1695 GCD 欧拉函数+容斥定理 || 莫比乌斯反演
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 1695 GCD(容斥定理)
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- HDU 4135 Co-prime 欧拉+容斥定理
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- TOJ 4008 The Leaf Eaters(容斥定理)
Description As we all know caterpillars love to eat leaves. Usually, a caterpillar sits on leaf, eat ...
- HDU - 4135 Co-prime 容斥定理
题意:给定区间和n,求区间中与n互素的数的个数, . 思路:利用容斥定理求得先求得区间与n互素的数的个数,设表示区间中与n互素的数的个数, 那么区间中与n互素的数的个数等于.详细分析见求指定区间内与n ...
- BZoj 2301 Problem b(容斥定理+莫比乌斯反演)
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 7732 Solved: 3750 [Submi ...
- 51nod1284容斥定理
1284 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10, ...
- 【hdu4135】【hdu2841】【hdu1695】一类通过容斥定理求区间互质的方法
[HDU4135]Co-prime 题意 给出三个整数N,A,B.问在区间[A,B]内,与N互质的数的个数.其中N<=10^9,A,B<=10^15. 分析 容斥定理的模板题.可以通过容斥 ...
随机推荐
- Ubuntu部署可视化爬虫Portia2.0环境
部署portia环境官方文档给出的方法太过简单,对于初学者来说是很难根据那一两行字成功部署portia环境的.对于部署portia这只可爱的爬虫的过程还是有很多坑的,主要写一篇portia2.0版本的 ...
- css中使用变量
2017年3月,微软宣布 Edge 浏览器将支持 CSS 变量.这个重要的 CSS 新功能,所有主要浏览器已经都支持了. 声明css变量的时候,变量名前面要加两根连词线(--).变量名大小写敏感,-- ...
- Linux安装简介
一.基本简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统. Linux能运行主要的UNIX工具软件.应用程序 ...
- 利用MySQL触发器实现check和assertion
MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...
- 在Centos7x上部署docker
docker只支持CentOS7.x系统,所以近期根据docker官网指南自己搭建了一套,供大家参考. 1.部署Centos7.x系统,查看系统版本. 2.执行 sudo yum update 更新到 ...
- c# List集合中First、Last、Single方法使用
操作符 如果源序列是空的 源序列只包含一个元素 源序列包含多个元素 First 抛异常 返回该元素 返回第一个元素 FirstOrDefault 返回default(TSource) 返回该元素 返回 ...
- 带你简单了解python协程和异步
带你简单了解python的协程和异步 前言 对于学习异步的出发点,是写爬虫.从简单爬虫到学会了使用多线程爬虫之后,在翻看别人的博客文章时偶尔会看到异步这一说法.而对于异步的了解实在困扰了我好久好久,看 ...
- 用shell批量编码转换
-------------------------------------文件内容转换:iconv-------------------------------------- 通常,从其他平台拷贝过来 ...
- 转:H2 入门
H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述: 更详细的对比见官网页面: http://www.h2database.com/html ...
- Cobbler批量部署CentOS
简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE ...