bzoj 2005: [Noi2010]能量采集【莫比乌斯反演】
注意到k=gcd(x,y)-1,所以答案是
\]
去掉前面的乘和后面的减,用莫比乌斯反演来推,设n<m:
\]
\]
\]
\]
分块求即可
#include<iostream>
#include<cstdio>
using namespace std;
const int N=100005;
long long n,m,mb[N],s[N],q[N],tot,ans;
bool v[N];
long long mobi(long long n,long long m)
{
    long long r=0ll;
    for(long long i=1,la;i<=n;i=la+1)
    {
        long long ni=n/i,mi=m/i;
        la=min(n/ni,m/mi);
        r+=(s[la]-s[i-1])*ni*mi;
    }
    return r;
}
int main()
{
    scanf("%lld%lld",&n,&m);
    if(n>m)
        swap(n,m);
    mb[1]=1;
    for(long long i=2;i<=n;i++)
    {
        if(!v[i])
        {
            mb[i]=-1;
            q[++tot]=i;
        }
        for(long long j=1;j<=tot&&q[j]*i<=n;j++)
        {
            long long k=q[j]*i;
            v[k]=1;
            if(i%q[j]==0)
            {
                mb[k]=0;
                break;
            }
            mb[k]=-mb[i];
        }
    }
    for(long long i=1;i<=n;i++)
        s[i]=s[i-1]+mb[i];
    for(long long i=1,la;i<=n;i=la+1)
    {
        long long ni=n/i,mi=m/i;
        la=min(m/mi,n/ni);
        ans+=(i+la)*(la-i+1)/2ll*mobi(ni,mi);
    }
    printf("%lld",2*ans-n*m);
    return 0;
}
bzoj 2005: [Noi2010]能量采集【莫比乌斯反演】的更多相关文章
- BZOJ 2005: [Noi2010]能量采集 [莫比乌斯反演]
		题意:\((0,0)\)到\((x,y),\ x \le n, y \le m\)连线上的整点数\(*2-1\)的和 \((0,0)\)到\((a,b)\)的整点数就是\(gcd(a,b)\) 因为. ... 
- BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)
		2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MBSubmit: 4493 Solved: 2695[Submit][Statu ... 
- bzoj 2005: [Noi2010]能量采集 筛法||欧拉||莫比乌斯
		2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MB[Submit][Status][Discuss] Description 栋栋 ... 
- BZOJ 2005: [Noi2010]能量采集
		2005: [Noi2010]能量采集 Time Limit: 10 Sec Memory Limit: 552 MBSubmit: 3312 Solved: 1971[Submit][Statu ... 
- BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )
		一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) * 2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ... 
- luogu1447 [NOI2010]能量采集 莫比乌斯反演
		link 冬令营考炸了,我这个菜鸡只好颓废数学题了 NOI2010能量采集 由题意可以写出式子: \(\sum_{i=1}^n\sum_{j=1}^m(2\gcd(i,j)-1)\) \(=2\sum ... 
- BZOJ2005: [Noi2010]能量采集   莫比乌斯反演的另一种方法——nlogn筛
		分析:http://www.cnblogs.com/huhuuu/archive/2011/11/25/2263803.html 注:从这个题收获了两点 1,第一象限(x,y)到(0,0)的线段上整点 ... 
- 【刷题】BZOJ 2005 [Noi2010]能量采集
		Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ... 
- BZOJ2005:[NOI2010]能量采集(莫比乌斯反演,欧拉函数)
		Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ... 
随机推荐
- Swift--方法(函数)
			方法是执行特殊任务的自包含代码块.你可以给方法名字来表示它的功能,而且在需要的时候调用这个名字的方法来执行它的任务. Swift方法的语法表达很灵活,从类似c的没有参数名的方法到oc复杂的带有名字和参 ... 
- iOS - 设置系统类似的方法弃用警告的方式
			在开发过程中,调用系统方法时,经常可以看xCode 提示 该方法已弃用,如下图: 觉得特别炫,查一下资料,如果自己也想实现如下的效果,只需要采用系统的如下几个关键字加在方法名后面就可以了: NS_DE ... 
- HDU 6437 最(大) 小费用最大流
			Problem L.Videos Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ... 
- 编写一个删除c语言程序文件中所有的注释语句
			//删除c语言程序中所有的注释语句,要正确处理带引号的字符串与字符串常量 #include <stdio.h> using namespace std; #define MAXLINE 1 ... 
- 代码svn下载到本地后,关于数据库问题
			代码svn下载到本地后,关于数据库问题 1.那我本地还用搭建相应的数据库么?答案:当然不用啦,本地系统里已经配置好了数据库的网络地址了,端口号,密码啥的.即使你代码运行在本地,依然可以将数据传输到服务 ... 
- GO语言 --socket.io
			socket.io是对websocket的封装以及扩展, 可以跨平台使用, 具体可看官网.. GO语言实现: package main import ( "github.com/googol ... 
- Could not find leader nimbus
			运行storm ui, 然后访问storm ui 的网页的时候,死活跑不起来.后面,根据下面这篇文章的说法, 停止zookeeper 之后,删掉zookeeper 上面的storm 节点, 然后再重启 ... 
- input 文本框禁止输入表情
			js在用户输入表情时自动过滤掉 <input type="text" id="input" maxlength="10"/> v ... 
- Pacemaker 安装与使用
			Pacemaker 仅仅做资源管理器(CRM).底下的消息系统採用 corosync. 安装 以 ubuntu 为例, sudo aptitude install -y pacemaker coros ... 
- Nerv  ---  React IE8 兼容方案
			创建项目 创建一个目录,使用npm快速初始化 $ mkdir my-project && npm init -y 安装依赖 安装webpack以及babel $ npm install ... 
