码迷,mamicode.com
首页 > 其他好文 > 详细

2019.10.18模拟赛T3

时间:2019-10-18 19:09:31      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:计算   题目   lin   through   要求   题解   个数   最小   简单   

题目大意:

  求$\sum\limits_{i=1}^n\sum\limits_{j=1}^n[lcm(i,j)>n](n\leq 10^{10})$的值。

题解:

  这题貌似有n多种做法...

  为了更好统计,把原式变为$n^2-\sum\limits_{i=1}^n\sum\limits_{j=1}^n[lcm(i,j)\leq n]$。

  然后开始毒瘤...

  首先,考虑枚举$lcm(i,j)$,设为$d$,计算有多少对$i.j$的最小公倍数为$d$。

  设$i=p_1^{a_1}p_2^{a_2}\cdots p_k^{a_k}$,$tp(i)=k$

  再枚举$gcd(i,j)$,设为$x$,又由于$\frac{i}{gcd(i,j)}$和$\frac{j}{gcd(i,j)}$互质,那么要统计的就是把$\frac{d}{x}$拆成两个互质数的方案数。

  那么简单想一下,方案数就是$2^{tp(\frac{d}{x})}$,因为同一个质因子不能同时出现在两个数中。

  于是答案变为:

    $\sum\limits_{d=1}^n\sum\limits_{x|d}2^{tp(x)}$

  枚举$x$,即$\sum\limits_{x=1}^n2^{tp(x)}\lfloor\frac{n}{x}\rfloor$。

  然后我们发现$\lfloor\frac{n}{x}\rfloor$可以进行数论分块,所以需要求出$2^{tp(x)}$的前$n$项和。

  但是...我不会啊!!

  所以接下来我开始打表,然后我惊奇地发现:

    $2^{tp(x)}=\sum\limits_{t|x}\mu^2(t)$!!!

2019.10.18模拟赛T3

标签:计算   题目   lin   through   要求   题解   个数   最小   简单   

原文地址:https://www.cnblogs.com/ldysy2012/p/11699922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!