JZOJ4991. Skyfall
题目大意
给定A,B,CA,B,C,计算
\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
题解
先讲一个结论
\sum_{i=1}^A\sum_{j=1}^B\sum_{k=1}^C~d(i\times j\times k)
等价于
\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
整理一下
\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
\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
莫比乌斯反演一下
\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相关推荐
- gradle构建_指定Gradle构建属性
gradle构建 属性是用于轻松自定义Gradle构建和Gradle环境的宝贵工具. 我将在本文中演示一些用于指定Gradle构建中使用的属性的方法. Gradle支持项目属性和系统属性 . 这篇文章 ...
- 指定Gradle构建属性
属性是用于轻松自定义Gradle构建和Gradle环境的宝贵工具. 我将在本文中演示一些用于指定Gradle构建中使用的属性的方法. Gradle支持项目属性和系统属性 . 这篇文章中有趣的是两者之间 ...
- ruby基本语法(2)
关于数组 Ruby数组中的数据类型可以不相同并且长度也是可变的.(好聪明啊感觉用的久了就会变笨了,除非你本来就是老手)比如下面的例子 Myarray=[1,2,"ruby"] Ru ...
- 史上最全 人工智能AI、黑客电影、网络安全题材电影最全合集
黑客和网络安全题材电影合集 筛选出的绝大部分电影主题都是围绕"黑客",其余电影也有足够多的网络安全情节和素材.这些电影能让一些无聊的技术话题(对于一部分朋友来说)变得更生动有趣.不 ...
- 1897个D3 例子
1.113th U.S. Congressional Districts 2.The Story of the Season 3.20000 points in random motion ...
- travisscott多高_如何评价说唱歌手Travis Scott ?
本人travis终极迷弟 最开始对travis不甚了解,只是经常看见他feat别人(他的feat是真多啊),印象基本停留在他洗脑的三句"straight up"."its ...
- 第85届奥斯卡金像奖获奖名单
第85届奥斯卡金像奖获奖名单 最佳影片 <逃离德黑兰> 本·阿弗莱克:我必须提斯皮尔伯格,他是个伟大的存在.还有其他那些获得提名的影片.太精彩了!谢谢每个人!谢谢加拿大!谢谢伊朗!虽然他们 ...
- [解读] Intersect360分析预测: 由AI和Cloud驱动,未来HPC市场达439亿
Intersect360研究将HPC市场定义为应用服务器.集群和Hyperscale 超级计算系统3大类,其中,以任意可伸缩的.面向web的Hyperscale市场增长最快. 1. 2016年全 ...
- 在 JavaScript 中复制对象
1.JavaScript中的浅拷贝对象 2.深度复制JavaScript中的对象 各种编程语言具有各种数据结构,允许你在内存中组织和存储数据.每个数据结构的工作方式都是独一无二的.例如, ...
- 2012第15周移动游戏榜单变化
比起应用市场,游戏市场是一个更加变化莫测的战场,虽然貌似刷榜问题还没有解决,但是每周还是都有一些新作大作杀入前列,又有一些被市场所淘汰想要了解上周的风云变幻,就看看这篇变化概况吧. 以下榜单中出现的数 ...
最新文章
- 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
- JQuery跨站脚本漏洞
- react-router 源码浅析
- 一年时间!这位22岁的成电博士生,就达到毕业要求!
- Linux C 错误 invalid application of 'sizeof' to incomplete type 解决方案
- ASI进行POST网络请求
- ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案
- 2013年12月24号感受
- java解析搜狗词库scel文件到txt
- html js定义json对象,JS中的JSON对象的定义和取值实现代码
- 知道Ping的最后一个返回值TTL是什么意思吗?
- java redis锁_Java中Redis锁的实现
- 词法分析☞DFA语言识别
- 百度地图 鼠标绘制工具BUG修复(地图自动平移)
- nginx正向代理,提供爬虫请求代理
- 串行、并行、并发,别再傻傻分不清了!
- 移动端SEO的一些疑问
- C++ STL之set详解
- 【RPC】慕课网RPC教程
- IO口功能寄存器式配置方法
热门文章
- 工控ARM板登陆、wifi连接
- 数字通信之数字信号基带传输(九)
- 【Unity Shader入门】☀️ | 使用Shader实现一个 图片边框 ✨制作!
- 宅家必备 | 笔记本开启WiFi共享
- c语言画实心圆角矩形,android 画虚线、实线,画圆角矩形,一半圆角
- Qt Cmake configuration has no path to a C++ compiler set, even though the toolkit has a v
- python对导入文件数据进行(查看、分析、解题思路、流程)做详细分析(适用于python初学者)
- System.InvalidOperationException:“在应用程序配置文件中找不到名为“LDOAEntities”的连接字符串。”
- torch.nn.Conv2d详解
- QT练习samp2_2_test——用按钮编辑文本框特性