正题

题目链接:https://www.luogu.org/problemnew/show/P1447


题目大意

求∑i=1n∑j=1mgcd(i,j)∗2−1\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)*2-1i=1∑n​j=1∑m​gcd(i,j)∗2−1


解题思路

设fif_ifi​表示gcd(x,y)==i(x∈[1..n],y∈[1..m])gcd(x,y)==i(x\in[1..n],y\in[1..m])gcd(x,y)==i(x∈[1..n],y∈[1..m])的个数。
然后首先如果不是考虑iii为最大的公约数的话那么个数就是(n/i)∗(m/i)(n/i)*(m/i)(n/i)∗(m/i)

然后考虑容斥减去,假设一个数的最大公约数是yyy而且拥有xxx这个公约数的话那么一定满足
y=kx(k∈N)y=kx(k\in \mathbb{N})y=kx(k∈N)
那么就减去fk∗if_{k*i}fk∗i​就好了

所以推得状态转移方程fi=(n/i)∗(m/i)−∑k=1k∗i≤min{n,m}fi∗kf_i=(n/i)*(m/i)-\sum_{k=1}^{k*i\leq min\{n,m\}}f_{i*k}fi​=(n/i)∗(m/i)−k=1∑k∗i≤min{n,m}​fi∗k​

时间复杂度O(nlog⁡log⁡n)O(n\log \log n)O(nloglogn)


codecodecode

#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll n,m,ans,f[101000];
int main()
{scanf("%lld%lld",&n,&m);if(n>m) swap(n,m);for(ll i=n;i>=1;i--){f[i]=(n/i)*(m/i);for(ll j=2*i;j<=n;j+=i)f[i]-=f[j];ans+=(i*2-1)*f[i];}printf("%lld",ans);
}

P1447-[NOI2010]能量采集【GCD,数论,容斥】相关推荐

  1. P1447 [NOI2010] 能量采集

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

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

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

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

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

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

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

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

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

  6. [NOI2010]能量采集

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

  7. POJ 1150 The Last Non-zero Digit 数论+容斥

    POJ 1150 The Last Non-zero Digit 数论+容斥 题目地址:  POJ 1150 题意:  求排列P(n, m)后面第一个非0的数. 分析: 为了熟悉题目中的理论.我先做了 ...

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

    分析:http://www.cnblogs.com/huhuuu/archive/2011/11/25/2263803.html 注:从这个题收获了两点 1,第一象限(x,y)到(0,0)的线段上整点 ...

  9. bzoj2005: [Noi2010]能量采集

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

最新文章

  1. 成功解决keras库中出现AttributeError: ‘str‘ object has no attribute ‘decode‘
  2. hibernate查询缓存_Hibernate查询缓存如何工作
  3. winform TreeView树节点上下移动
  4. python安装pyserial模块_Python使用模块Pyserial模块报
  5. pptx字体类的相关方法
  6. python爬取教务系统_python 爬取 强智科技教务系统(湖南)
  7. python cad 二次开发bom_python处理BOM
  8. 数据恢复软件的原理是什么?
  9. 双基因突变患者_我的肺癌没有基因突变,这是好是坏?
  10. 幼儿园调查过程怎么写_幼儿园家长的调查问卷话术
  11. java设计模式-设配器模式
  12. 北京中医药大学《计算机基础》平时作业1
  13. Gerrit代码审计系统实战-Gerrit 2.15.14版本快速搭建
  14. dna计算机开发,科学家正在开发DNA电脑
  15. 什么是百度SEO?百度SEO优化怎么做?
  16. wordpress文章自动同步天涯博客插件wp2Tianya发布
  17. 【MATLAB】遗传算法(GA)求解TSP问题
  18. 小米电视4A Android8,小米电视4A 删除内置应用及其去广告攻略
  19. 蛮力枚举算法C语言,算法01-蛮力法
  20. 现在AI发展到什么阶段了

热门文章

  1. 设计模式在项目中的应用案例_设计模式在项目中的应用(初学者版)
  2. w10计算机无法打印,win10升级后惠普无法打印怎么解决_win10升级后惠普打印不了的处理办法...
  3. oracle asm 配置失败,Oracle ASMLib安装与配置
  4. 7-23 还原二叉树 (25 分)(分析加详解)
  5. mysql数据去重_mysql 数据去重
  6. 数据结构---邻接矩阵的DFS
  7. 电机控制pid_微电机控制如此简单,揭秘微电机调速的控制,PID控制之双环调速...
  8. SpringMVC 、Struts的区别
  9. Codeforces Round #746 (Div. 2)
  10. CF1458B Glass Half Spilled