BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛
分析:http://www.cnblogs.com/huhuuu/archive/2011/11/25/2263803.html
注:从这个题收获了两点
1,第一象限(x,y)到(0,0)的线段上整点的个数是gcd(x,y)
2,新学了一发求gcd(x,y)=k有多少对的姿势,已知0<x<=n,0<y<=m
令x=min(n,m),令f[i]代表gcd(x,y)=i的对数,
那么通过O(xlogx)的复杂度就可以得到f[1]到f[n](反着循环)
普通的容斥(即莫比乌斯反演)其实也是O(xlogx)的,只是需要筛一遍莫比乌斯函数
总结:对于求单个的gcd(x,y)=k的对数,可以用莫比乌斯反演来做,这样的复杂度是O(n/k)的
对于求gcd(x,y)=(1,..n)的对数,每个分别求解时,直接用这样的O(nlogn)的筛法就好,省代码,还好写
#include<cstdio>
#include<cstring>
#include<queue>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
typedef long long LL;
const int N=1e5+;
const int INF=0x3f3f3f3f;
LL f[N];
int main(){
LL n,m,ans=;
scanf("%lld%lld",&n,&m);
if(n>m)swap(n,m);
for(int i=n;i>=;--i){
f[i]=n/i*(m/i);
for(int j=i+i;j<=n;j+=i)
f[i]-=f[j];
ans+=f[i]*(*i-);
}
printf("%lld\n",ans);
return ;
}
BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛的更多相关文章
- BZOJ2005:[NOI2010]能量采集(莫比乌斯反演,欧拉函数)
Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ...
- luogu1447 [NOI2010]能量采集 莫比乌斯反演
link 冬令营考炸了,我这个菜鸡只好颓废数学题了 NOI2010能量采集 由题意可以写出式子: \(\sum_{i=1}^n\sum_{j=1}^m(2\gcd(i,j)-1)\) \(=2\sum ...
- BZOJ 2005: [Noi2010]能量采集 [莫比乌斯反演]
题意:\((0,0)\)到\((x,y),\ x \le n, y \le m\)连线上的整点数\(*2-1\)的和 \((0,0)\)到\((a,b)\)的整点数就是\(gcd(a,b)\) 因为. ...
- BZOJ2005 NOI2010 能量采集 【莫比乌斯反演】
BZOJ2005 NOI2010 能量采集 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些 ...
- bzoj2005: [Noi2010]能量采集
lsj师兄的题解 一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 < ...
- [BZOJ2005][Noi2010]能量采集 容斥+数论
2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MBSubmit: 4394 Solved: 2624[Submit][Statu ...
- 【莫比乌斯反演】BZOJ2005 [NOI2010]能量采集
Description 求sigma gcd(x,y)*2-1,1<=x<=n, 1<=y<=m.n, m<=1e5. Solution f(n)为gcd正好是n的(x, ...
- BZOJ2005: [Noi2010]能量采集(容斥原理 莫比乌斯反演)
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 4727 Solved: 2877[Submit][Status][Discuss] Descript ...
- [bzoj2005][Noi2010][能量采集] (容斥 or 欧拉函数)
Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后, 栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种 ...
随机推荐
- slabs.c
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* * Slabs memory allo ...
- Python3 错误处理 和 测试
try 让我们用一个例子来看看try的机制: try: print('try...') r = 10 / 0 except ZeroDivisionError as e: print('except: ...
- centos 安装php ide (eclipse + php 插件)
1.检查更新并安装eclipse yum check-update yum install eclipse*此时的 eclipse 已经安装好了,默认是在/usr/lib/下的,可以通过cd /u ...
- AngularJS(2)-Scope作用域和控制器
$scope: 根作用域 所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中. $rootScope 可作用于整个应用中.是各个 controlle ...
- javascript学习笔记2
二.下列哪些变量是不正确的 说明原因 var a1; var b1 = 3; c1 ='good'; var d1 = c1 = e1; × 连等必须赋值 var g1 = 'hei' goo ...
- php 魔术方法__get()和__set()理解
__get()方法,官方手册上是这样解释的 : ' 当调用(自己加的:或设置|赋值)当前环境下未定义或不可见的类属性或方法时,重载方法会被调用.本节后面将使用"不可访问属性(inaccess ...
- 【2】认识Bootstrap
作为当下最流行的前端开发框架Bootstrap,它可大大简化网站开发过程,从而深受广大开发者的喜欢,当然你去它的官网中文网站就能看到大大的小标定义:“简洁.直观.强悍.移动设备优先的前端开发框架,让w ...
- org
controller层单元测试报错 org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of ...
- Lucas定理的理解与应用
Lucas定理:用于计算组合数模除素数后的值,其实就是把(n,m)分别表示为p进制,累乘各位的可能取的个数,得到最终的结果: 推论:(n & m) == m则C(n,m)为奇数:即C(n,m) ...
- poj 1904 King's Quest
King's Quest 题意:有N个王子和N个妹子;(1 <= N <= 2000)第i个王子喜欢Ki个妹子:(详见sample)题给一个完美匹配,即每一个王子和喜欢的一个妹子结婚:问每 ...