题目大意

给定A,B,CA,B,C,计算

∑i=1A∑j=1B∑k=1C d(i×j×k)

\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C~d(i\times j\times k)
其中 d(x)d(x)表示 xx的因子个数。

Data Constraint
A,B,C≤5000A,B,C\leq5000

题解

先讲一个结论

∑i=1A∑j=1B∑k=1C d(i×j×k)

\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C~d(i\times j\times k)
等价于

∑(i,j)=1 and (j,k)=1 and (i,k)=1⌊Ai⌋⌊Bj⌋⌊Ck⌋

\sum_{(i,j)=1~and~(j,k)=1~and~(i,k)=1}\lfloor\frac{A}{i}\rfloor\lfloor\frac{B}{j}\rfloor\lfloor\frac{C}{k}\rfloor
整理一下

∑i=1A∑j=1B∑k=1C[(i,j)=1][(j,k)=1][(i,k)=1]⌊Ai⌋⌊Bj⌋⌊Ck⌋

\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C[(i,j)=1][(j,k)=1][(i,k)=1]\lfloor\frac{A}{i}\rfloor\lfloor\frac{B}{j}\rfloor\lfloor\frac{C}{k}\rfloor

∑i=1A⌊Ai⌋∑j=1B∑k=1C[(i,j)=1][(j,k)=1][(i,k)=1]⌊Bj⌋⌊Ck⌋

\sum_{i=1}^A\lfloor\frac{A}{i}\rfloor\sum_{j=1}^B\sum_{k=1}^C[(i,j)=1][(j,k)=1][(i,k)=1]\lfloor\frac{B}{j}\rfloor\lfloor\frac{C}{k}\rfloor
莫比乌斯反演一下

∑i=1A⌊Ai⌋∑d=1min(B,C)[(i,d)=1]μ(d)∑j′=1⌊Bd⌋∑k′=1⌊Cd⌋[(j′,i)=1][(k′,i)=1]⌊Bj′d⌋⌊Ck′d⌋

\sum_{i=1}^A\lfloor\frac{A}{i}\rfloor\sum_{d=1}^{min(B,C)}[(i,d)=1]\mu(d)\sum_{j'=1}^{\lfloor\frac{B}{d}\rfloor}\sum_{k'=1}^{\lfloor\frac{C}{d}\rfloor}[(j',i)=1][(k',i)=1]\lfloor\frac{B}{j'd}\rfloor\lfloor\frac{C}{k'd}\rfloor

然后就可以计算了,加一个记忆化来优化常数。

时间复杂度:O(n2logn)O(n^2logn)

SRC

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std ;#define M 5000 + 10
typedef long long ll ;
const int MO = 1 << 30 ;bool flag[M] ;
int Pri[M] , Miu[M] , Rec[M] , G[M][M] ;
int A , B , C ;
ll ans ;void Pre() {Miu[1] = 1 ;for (int i = 2 ; i <= 5000 ; i ++ ) {if ( !flag[i] ) {Pri[++Pri[0]] = i ;Miu[i] = -1 ;}for (int j = 1 ; j <= Pri[0] ; j ++ ) {if ( i * Pri[j] > M ) break ;flag[i*Pri[j]] = 1 ;if ( i % Pri[j] == 0 ) { Miu[i*Pri[j]] = 0 ; break ; }Miu[i*Pri[j]] = - Miu[i] ;}}
}int gcd( int x , int y ) {if ( G[x][y] ) return G[x][y] ;return G[x][y] = !y ? x : gcd( y , x % y ) ;
}int Calc( int x ) {if ( Rec[x] >= 0 ) return Rec[x] ;Rec[x] = 0 ;for (int i = 1 ; i <= x ; i ++ ) {if ( !flag[i] ) continue ;Rec[x] = (Rec[x] + x / i) % MO ;}return Rec[x] ;
}int main() {freopen( "skyfall.in" , "r" , stdin ) ;freopen( "skyfall.out" , "w" , stdout ) ;Pre() ;scanf( "%d%d%d" , &A , &B , &C ) ;for (int i = 1 ; i <= A ; i ++ ) {for (int j = 1 ; j <= max( B , C ) ; j ++ ) {flag[j] = gcd( i , j ) == 1 ? 1 : 0 ;Rec[j] = -1 ;}for (int d = 1 ; d <= min( B , C ) ; d ++ ) {if ( !flag[d] ) continue ;ans = (ans + (ll)A / i * Miu[d] % MO * Calc( B / d ) % MO * Calc( C / d ) % MO ) % MO ;}}printf( "%lld\n" , (ans + MO) % MO ) ;return 0 ;
}

以上.

JZOJ4991. Skyfall相关推荐

  1. gradle构建_指定Gradle构建属性

    gradle构建 属性是用于轻松自定义Gradle构建和Gradle环境的宝贵工具. 我将在本文中演示一些用于指定Gradle构建中使用的属性的方法. Gradle支持项目属性和系统属性 . 这篇文章 ...

  2. 指定Gradle构建属性

    属性是用于轻松自定义Gradle构建和Gradle环境的宝贵工具. 我将在本文中演示一些用于指定Gradle构建中使用的属性的方法. Gradle支持项目属性和系统属性 . 这篇文章中有趣的是两者之间 ...

  3. ruby基本语法(2)

    关于数组 Ruby数组中的数据类型可以不相同并且长度也是可变的.(好聪明啊感觉用的久了就会变笨了,除非你本来就是老手)比如下面的例子 Myarray=[1,2,"ruby"] Ru ...

  4. 史上最全 人工智能AI、黑客电影、网络安全题材电影最全合集

    黑客和网络安全题材电影合集 筛选出的绝大部分电影主题都是围绕"黑客",其余电影也有足够多的网络安全情节和素材.这些电影能让一些无聊的技术话题(对于一部分朋友来说)变得更生动有趣.不 ...

  5. 1897个D3 例子

         1.113th U.S. Congressional Districts 2.The Story of the Season  3.20000 points in random motion ...

  6. travisscott多高_如何评价说唱歌手Travis Scott ?

    本人travis终极迷弟 最开始对travis不甚了解,只是经常看见他feat别人(他的feat是真多啊),印象基本停留在他洗脑的三句"straight up"."its ...

  7. 第85届奥斯卡金像奖获奖名单

    第85届奥斯卡金像奖获奖名单 最佳影片 <逃离德黑兰> 本·阿弗莱克:我必须提斯皮尔伯格,他是个伟大的存在.还有其他那些获得提名的影片.太精彩了!谢谢每个人!谢谢加拿大!谢谢伊朗!虽然他们 ...

  8. [解读] Intersect360分析预测: 由AI和Cloud驱动,未来HPC市场达439亿

    Intersect360研究将HPC市场定义为应用服务器.集群和Hyperscale 超级计算系统3大类,其中,以任意可伸缩的.面向web的Hyperscale市场增长最快. 1.    2016年全 ...

  9. 在 JavaScript 中复制对象

    ​​​​​​ 1.JavaScript中的浅拷贝对象 2.深度复制JavaScript中的对象 各种编程语言具有各种数据结构,允许你在内存中组织和存储数据.每个数据结构的工作方式都是独一无二的.例如, ...

  10. 2012第15周移动游戏榜单变化

    比起应用市场,游戏市场是一个更加变化莫测的战场,虽然貌似刷榜问题还没有解决,但是每周还是都有一些新作大作杀入前列,又有一些被市场所淘汰想要了解上周的风云变幻,就看看这篇变化概况吧. 以下榜单中出现的数 ...

最新文章

  1. 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
  2. JQuery跨站脚本漏洞
  3. react-router 源码浅析
  4. 一年时间!这位22岁的成电博士生,就达到毕业要求!
  5. Linux C 错误 invalid application of 'sizeof' to incomplete type 解决方案
  6. ASI进行POST网络请求
  7. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案
  8. 2013年12月24号感受
  9. java解析搜狗词库scel文件到txt
  10. html js定义json对象,JS中的JSON对象的定义和取值实现代码
  11. 知道Ping的最后一个返回值TTL是什么意思吗?
  12. java redis锁_Java中Redis锁的实现
  13. 词法分析☞DFA语言识别
  14. 百度地图 鼠标绘制工具BUG修复(地图自动平移)
  15. nginx正向代理,提供爬虫请求代理
  16. 串行、并行、并发,别再傻傻分不清了!
  17. 移动端SEO的一些疑问
  18. C++ STL之set详解
  19. 【RPC】慕课网RPC教程
  20. IO口功能寄存器式配置方法

热门文章

  1. 工控ARM板登陆、wifi连接
  2. 数字通信之数字信号基带传输(九)
  3. 【Unity Shader入门】☀️ | 使用Shader实现一个 图片边框 ✨制作!
  4. 宅家必备 | 笔记本开启WiFi共享
  5. c语言画实心圆角矩形,android 画虚线、实线,画圆角矩形,一半圆角
  6. Qt Cmake configuration has no path to a C++ compiler set, even though the toolkit has a v
  7. python对导入文件数据进行(查看、分析、解题思路、流程)做详细分析(适用于python初学者)
  8. System.InvalidOperationException:“在应用程序配置文件中找不到名为“LDOAEntities”的连接字符串。”
  9. torch.nn.Conv2d详解
  10. QT练习samp2_2_test——用按钮编辑文本框特性