分析: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+5;
const int INF=0x3f3f3f3f;
LL f[N];
int main(){LL n,m,ans=0;scanf("%lld%lld",&n,&m);if(n>m)swap(n,m);for(int i=n;i>=1;--i){f[i]=n/i*(m/i);for(int j=i+i;j<=n;j+=i)f[i]-=f[j];ans+=f[i]*(2*i-1); }printf("%lld\n",ans);return 0;
}

View Code

转载于:https://www.cnblogs.com/shuguangzw/p/5440297.html

BZOJ2005: [Noi2010]能量采集 莫比乌斯反演的另一种方法——nlogn筛相关推荐

  1. [2019.1.14]BZOJ2005 [Noi2010]能量采集

    以下设\(n\ge m\). 首先,一个点\((x,y)\)到\((0,0)\)的路径上经过的点的数量(不包括首尾)为\(gcd(x,y)-1\). 所以它的能量损耗为\(2\times gcd(x, ...

  2. bzoj2005: [Noi2010]能量采集

    不知道什么算法. 首先求一颗植物(i,j)与能量采集器的连线上有几颗植物. 答案是(gcd(i,j)-1),设i'= i/gcd(i,j),j'=j/gcd(i,j). 则这几颗植物是(i'k,j'k ...

  3. BZOJ2005 NOI2010 能量采集 欧拉函数

    题意:求$\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^M {f(i,j)} } $,其中f(i,j)=(0,0)与(i,j)连线上点的数量 题解: 如果一个点 ...

  4. (每日一题)P1447 [NOI2010] 能量采集(莫反套路 + 欧拉反演 / 容斥原理)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.19 莫反 Problem Solu ...

  5. P1447 [NOI2010]能量采集(mobius反演)

    P1447 [NOI2010]能量采集 式子化简 显然题目就是要我们求∑i=1n∑j=1m2gcd(i,j)−1\sum_{i = 1} ^{n} \sum_{j = 1} ^{m} 2gcd(i, ...

  6. [NOI2010]能量采集

    469. [NOI2010]能量采集 ★★☆   输入文件:energy2010.in   输出文件:energy2010.out   简单对比 时间限制:1 s   内存限制:512 MB [问题描 ...

  7. P1447 [NOI2010] 能量采集

    P1447 [NOI2010] 能量采集 题意: 如果一棵植物与能量汇集机器(坐标为0,0)连接而成的线段上有 k 棵植物,则能量的损失为 2k + 1 给你一个n*m的植物园,问能量损失是多少 1& ...

  8. BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )

    一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) *  2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ...

  9. bz2005 2005: [Noi2010]能量采集 数学题

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MB Submit: 2494  Solved: 1475 [Submit][Sta ...

最新文章

  1. 实时车道检测--A Novel Vision-Based Framework for Real-Time Lane Detection and Tracking
  2. iot架构 mqtt netty_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
  3. linux换服务器登录插件,Linux服务器登录、注销 用户和用户组管理
  4. 【快乐水题】509. 斐波那契数
  5. Spring MVC集成Tiles使用方法
  6. 微信扫一扫识物的技术揭秘:抠图与检索
  7. ###《Effective STL》--Chapter3
  8. 关联规则算法Apriori的学习与实现
  9. 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
  10. 华为 eNSP模拟器安装教程
  11. 小米路由器设置无线中继模式
  12. 一招教你电脑微信双开
  13. 干货!详解服务器端和移动端性能测试指标
  14. 中山大学2021计算机考研复试线,2021中山大学研究生复试分数线
  15. Android模拟器启动报错:gpu found. vendor id 1002 device id 0x
  16. matlab randn 范围,如何用matlab编写randn函数?
  17. Jetpack-MVVM-高频提问和解答,附带学习经验
  18. python点图_Python | 点图
  19. 四舍六入五成双的意思
  20. 老板到底能不能,监控到电脑版微信聊天?

热门文章

  1. 皇室战争:暗夜女巫重做,去掉亡语机制后,她凉的可能会更快
  2. PHP面试题:请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
  3. 使用TCP可靠吗?为什么可靠?
  4. Oracle 10g OCM Exam 大纲
  5. Spring boot 上传文件时 MultipartFile 报空指针
  6. 用Java访问带有Kerberos认证的HBase
  7. 默认轮播,鼠标移入停止,移出继续
  8. oc79--数组的内存管理
  9. iOS 利用长按手势移动 Table View Cells
  10. C语言字符串-字符串排序