Codeforces 235E
Codeforces 235E
原题
题目描述:设\(d(n)\)表示\(n\)的因子个数, 给定\(a, b, c\), 求:
\[\sum_{i=1}^{a} \sum_{j=1}^{b} \sum_{k=1}^{c} d(i \cdot j \cdot k) (mod 2^{30})\]
solution
rng_58 Orz,这方法太神了,rng_58证明了下面这条式子:
\[\sum_{i=1}^{a} \sum_{j=1}^{b} \sum_{k=1}^{c} d(i \cdot j \cdot k) =\sum_{(i, j)=(i, k)=(j, k)=1} \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor\]
证明:
设
\[f(a, b, c)=\sum_{i=1}^{a} \sum_{j=1}^{b} \sum_{k=1}^{c} d(i \cdot j \cdot k) \]
\[g(a, b, c)=\sum_{(i, j)=(i, k)=(j, k)=1} \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor\]
由容斥原理可得(一式)
\[d(i \cdot j \cdot k)=f(a, b, c)-f(a-1, b, c)-f(a, b-1, c)-f(a, b, c-1)+f(a-1, b-1, c)+f(a-1, b, c-1)+f(a, b-1, c-1)-f(a-1, b-1, c-1)\]
则若(二式)
\[d(i \cdot j \cdot k)=g(a, b, c)-g(a-1, b, c)-g(a, b-1, c)-g(a, b, c-1)+g(a-1, b-1, c)+g(a-1, b, c-1)+g(a, b-1, c-1)-g(a-1, b-1, c-1)\]
则原命题得证。
二式\(=\)
\[\sum_{(i, j)=(i, k)=(j, k)=1} \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor -\left \lfloor \frac{a-1}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor - \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b-1}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor - \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c-1}{k} \right \rfloor + \left \lfloor \frac{a-1}{i} \right \rfloor \left \lfloor \frac{b-1}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor +
\left \lfloor \frac{a-1}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c-1}{k} \right \rfloor + \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b-1}{j} \right \rfloor \left \lfloor \frac{c-1}{k} \right \rfloor - \left \lfloor \frac{a-1}{i} \right \rfloor \left \lfloor \frac{b-1}{j} \right \rfloor \left \lfloor \frac{c-1}{k} \right \rfloor\]
\(=\)
\[\sum_{(i, j)=(i, k)=(j, k)=1} (\left \lfloor \frac{a}{i} \right \rfloor -\left \lfloor \frac{a-1}{i} \right \rfloor) (\left \lfloor \frac{b}{j} \right \rfloor - \left \lfloor \frac{b-1}{j} \right \rfloor) (\left \lfloor \frac{c}{k} \right \rfloor - \left \lfloor \frac{c-1}{k} \right \rfloor)\]
即只有当\((i, j)=(i, k)=(j, k)=1 , i|a, j|b, k|c\)时,和中的式子才等于\(1\),否则为\(0\).
设\(p_i\)为质因子,\(q_i\)为\(p_{i}^{q_i} \leq n\)的最大值,则\(n\)的因数个数为
\[\prod_{i} (q_i +1)\]
根据上述定义设类似\(q_i\)的定义对于\(a\)为\(x_i\), \(b\)为\(y_i\), \(c\)为\(z_i\)
对于\(p_i\),该质数的个数为\(x_i+y_i+z_i\),
因为\((i, j)=(i, k)=(j, k)=1 , i|a, j|b, k|c\), 对于\(p_i\), 答案为\((0, 0, 0)+(1 \text ~ x_i, 0, 0)+(0, 1 \text ~ y_i, 0)+(0, 0, 1 \text ~ z_i)=x_i+y_i+z_i+1\)
所以二式=一式,即\(f(a, b, c)=g(a, b, c)\)
然后就可以用莫比乌斯的性质函数来解了。
\[\sum_{(i, j)=(i, k)=(j, k)=1} \left \lfloor \frac{a}{i} \right \rfloor \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor\]
\[=\sum_{i} \left \lfloor \frac{a}{i} \right \rfloor \sum_{d=(j, k)} \epsilon(d) \left \lfloor \frac{b}{j} \right \rfloor \left \lfloor \frac{c}{k} \right \rfloor\]
\[=\sum_{i} \left \lfloor \frac{a}{i} \right \rfloor \sum_{d} \mu(d) \left \lfloor \frac{b}{j'd} \right \rfloor \left \lfloor \frac{c}{k'd} \right \rfloor\]
因为\(i\)与\(d, j', k'\)都有关联,所以只好枚举
枚举\(i\),枚举\(d\),然后分别枚举\(j'\), \(k'\),然后相乘,时间复杂度为:\(O(n^2ln\) \(n)\)
Codeforces 235E的更多相关文章
- Codeforces 235E Number Challenge
http://codeforces.com/contest/235/problem/E 远距离orz......rng_58 证明可以见这里(可能要FQ才能看到) 还是copy一下证明吧: 记 $$f ...
- 【codeforces 235E】 Number Challenge
http://codeforces.com/problemset/problem/235/E (题目链接) 题意 给出${a,b,c}$,求${\sum_{i=1}^a\sum_{j=1}^b\sum ...
- 洛谷 P3327 [SDOI2015]约数个数和 || Number Challenge Codeforces - 235E
https://www.luogu.org/problemnew/show/P3327 不会做. 去搜题解...为什么题解都用了一个奇怪的公式?太奇怪了啊... 公式是这样的: $d(xy)=\sum ...
- CodeForces 235E Number Challenge (莫比乌斯反演)
题意:求,其中d(x) 表示 x 的约数个数. 析:其实是一个公式题,要知道一个结论 知道这个结论就好办了. 然后就可以解决这个问题了,优化就是记忆化gcd. 代码如下: #pragma commen ...
- Codeforces 235E. Number Challenge DP
dp(a,b,c,p) = sigma ( dp(a/p^i,b/p^j,c/p^k) * ( 1+i+j+k) ) 表示用小于等于p的素数去分解的结果有多少个 E. Number Challenge ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
随机推荐
- JAVA的网络编程【转】
JAVA的网络编程[转] Posted on 2009-12-03 18:04 火之光 阅读(93441) 评论(20) 编辑 收藏 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能, ...
- eclipse 软件的背景颜色、字体设置
1.eclipse 背景色设置: Window->Preferences->General->Editors->Text Editors->Backgroud color ...
- Android下EditText中的字体不统一问题
Android下EditText中的字体不统一问题 好久没写,今天心情好略记下解决的某bug 在一个登录界面有帐号和密码两个EditText,但是却发现两个EditText的hint的英文字体不同,看 ...
- sql的基本查询语句
--------------------------------------------基本常用查询-------------------------------------- 自己简单练习做了个表. ...
- .NET与你若仅仅如初见(一)
难忘初次见到你,那是一个夏日的午后,可是天空中乌云密布.大雨来临前的一段时间总是非常闷热的,当我朦胧的睡眼看到你之后瞬间就清醒了,感觉空气也凉爽了起来.尽管仅仅一眼但就是被你那清新脱俗沉鱼落雁之美所征 ...
- 【机房系统知识小结点系列】之遍历窗体中的控件,判断Text是否为空?
做机房系统时,几乎每个窗体中都会用到判断界面中的控件是否为空的情景.我们曾经是这样走来的: 第一版: 好处:对窗体界面中的Text等控件,逐一做判断,当用户输入某一项为空的时候,会议弹出框的形式,告诉 ...
- poj2387-Til the Cows Come Home dijkstra获得水的问题
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29539 Accepted ...
- PropertyGrid--为复杂属性提供编辑功能
零.引言 PropertyGrid用来显示某一对象的属性,但是并不是所有的属性都能编辑,基本数据类型(int, double等)和.Net一些封装的类型(Size,Color等)可以编辑,但是对于自己 ...
- JavaScript 【非IE DOM2级XML】
DOM2中的XML IE可以实现了对XML字符串或XML文件的读取,其他浏览器也各自实现了对XML处理功能.DOM2级在document.implementaion中引入了createDocument ...
- http头部信息研究
1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Charset: 浏览器申明自 ...