正题

P1447


题目大意

给出n,m,求2×∑i=1n∑j=1m(gcd(i,j)−1)+n×m2\times \sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)-1)+n\times m2×i=1∑n​j=1∑m​(gcd(i,j)−1)+n×m


解题思路

2×∑i=1n∑j=1m(gcd(i,j)−1)+n×m2×∑i=1n∑j=1mgcd(i,j)−n×m2\times \sum_{i=1}^n\sum_{j=1}^m(gcd(i,j)-1)+n\times m \\ 2\times \sum_{i=1}^n\sum_{j=1}^mgcd(i,j)-n\times m 2×i=1∑n​j=1∑m​(gcd(i,j)−1)+n×m2×i=1∑n​j=1∑m​gcd(i,j)−n×m

那么求出∑i=1n∑j=1mgcd(i,j)\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)∑i=1n​∑j=1m​gcd(i,j)就好了

∑i=1n∑j=1mgcd(i,j)∑d=1nd∑i=1n/d∑j=1m/d[gcd(i,j)=1]∑d=1nd∑i=1n/d∑j=1m/d∑c∣i,c∣jμ(c)∑d=1nd∑c=1min(n/d,m/d)μ(c)×⌊ncd⌋×⌊mcd⌋\sum_{i=1}^n\sum_{j=1}^mgcd(i,j) \\ \sum_{d=1}^nd\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[gcd(i,j)=1] \\ \sum_{d=1}^nd\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}\sum_{c|i,c|j}\mu(c) \\ \sum_{d=1}^nd\sum_{c=1}^{min(n/d,m/d)}\mu(c)\times\left\lfloor\frac{n}{cd}\right\rfloor\times\left\lfloor\frac{m}{cd}\right\rfloor i=1∑n​j=1∑m​gcd(i,j)d=1∑n​di=1∑n/d​j=1∑m/d​[gcd(i,j)=1]d=1∑n​di=1∑n/d​j=1∑m/d​c∣i,c∣j∑​μ(c)d=1∑n​dc=1∑min(n/d,m/d)​μ(c)×⌊cdn​⌋×⌊cdm​⌋

考虑枚举cd,设k=cd

∑k=1n⌊nk⌋⌊mk⌋∑d∣kd×μ(k/d)\sum_{k=1}^n\left\lfloor\frac{n}{k}\right\rfloor\left\lfloor\frac{m}{k}\right\rfloor\sum_{d|k}d\times\mu(k/d) k=1∑n​⌊kn​⌋⌊km​⌋d∣k∑​d×μ(k/d)

因为有μ×id=φ\mu\times id=\varphiμ×id=φ

所以原式等于

∑k=1n⌊nk⌋⌊mk⌋φ(k)\sum_{k=1}^n\left\lfloor\frac{n}{k}\right\rfloor\left\lfloor\frac{m}{k}\right\rfloor\varphi(k)k=1∑n​⌊kn​⌋⌊km​⌋φ(k)

可以整除分块

时间复杂度 O(n+n)O(n+\sqrt{n})O(n+n​)


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 100100
using namespace std;
ll n,m,w,ans,p[N],phi[N],prime[N];
const ll MX=1e5;
void work()
{phi[1]=1;for(ll i=2;i<=MX;++i){if(!p[i]){prime[++w]=i;phi[i]=i-1;}for(ll j=1;j<=w&&i*prime[j]<=MX;++j){p[i*prime[j]]=1;if(i%prime[j]==0){phi[i*prime[j]]=phi[i]*prime[j];break;}else phi[i*prime[j]]=phi[i]*(prime[j]-1);}}for(ll i=2;i<=n;++i)phi[i]+=phi[i-1];return;
}
int main()
{scanf("%lld%lld",&n,&m);work();for(ll l=1,r=0;l<=min(n,m);l=r+1){r=min(n/(n/l),m/(m/l));ans+=(phi[r]-phi[l-1])*(n/l)*(m/l);}printf("%lld",ans*2-n*m);return 0;
}

【数论】能量采集(P1447)相关推荐

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

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

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

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

  3. P1447 [NOI2010] 能量采集

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

  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. [NOI2010]能量采集

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

  6. bzoj2005: [Noi2010]能量采集

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

  7. BZOJ-2005能量采集-数论函数

    很入门的数论函数题目.我还是wa了一发(爆long long 了) 对于每个位置x,y,在他们和能量采集器中间的植物为gcd(x,y)-1,[在他们之间说明斜率相同,而和他们斜率相同的就是所有gcd( ...

  8. 能量采集(HYSBZ-2005)

    Problem Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. ...

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

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

  10. 能量收集matlab程序_深港微电子学院汪飞课题组在Sensors and Actuators A: Physical上发表双谐振能量采集器论文...

    深港微电子学院汪飞课题组在压电能量采集器领域取得突破性进展.他们仿真并制备了一种基于PVDF材料的双共振压电薄膜能量采集器,其谐振频率为15 Hz和22 Hz.在 9.81  的加速度下,器件带宽扩展 ...

最新文章

  1. python面试-Python面试
  2. UI开发模式-容器模式
  3. [Linux实用工具]Ubuntu环境下SSH的安装及使用
  4. 查询缓存---Mybatis学习笔记(十)
  5. SAP odata get metadata in QHD - still has cache logic
  6. 烂泥:【解决】word复制windows live writer没有图片
  7. 【OpenCV】入门学习资料汇总
  8. 使用spring的JavaMailSender发送邮件
  9. 饮食与癌细胞代谢的分子联系
  10. 459.重复的子字符串
  11. t470键盘拆解_做工保持良好水准 ThinkPad T470笔记本拆机解析
  12. 苹果计算机 win10,图文教程!苹果电脑和WIN10的完美融合井井有条的美
  13. tfidf处理代码_tfidf代码简单实现
  14. pentaho资源库迁移-MySQL
  15. 系统优化的基本思想点
  16. 最新彻底禁止win10自动更新
  17. Excel2007无法卸载:安装程序包的语言不受系统支持。微软的卸载程序也不行。——只能手工删除
  18. matlab二项式,动态规划 – 计算二项式系统 —MATLAB代码 – 算法网
  19. 纯css实现翻书效果
  20. 最新版本maven引发的血案

热门文章

  1. 机器学习与气象数据_气象大数据与机器学习联合实验室 大数据和气象的“联姻”...
  2. 中科大计算机是一流学科吗,安徽2017双一流学科排行榜:中国科技大学第一
  3. 2020计算机单招的大专,2020专科和单招的区别
  4. 微型计算机硬件采用什么,微型计算机的硬件系统包括什么?
  5. leetcote34. 在排序数组中查找元素的第一个和最后一个位置
  6. 7-3 最短路径 (20 分)(分支限界+思路+详解)
  7. dptcpp 题目 2352: [信息学奥赛一本通-T1440]数的划分-dp
  8. 算法-排序-选择排序
  9. 题目 1885: [蓝桥杯][2017年第八届真题]分巧克力+二分
  10. 算法---会议最大安排问题