题意

链接

定义 $f(x)$ 为满足以下条件的有序二元组 $(a, b)$ 的方案数(即 $(a, b)$ 与 $(b, a)$ 被认为是不同的方案):

  • $x= ab$
  • $a$ 和 $b$ 均无平方因子(即因子中没有除1之外的完全平方数)

求 $\displaystyle \sum_{i=1}^nf(i), 1 \leq n\leq 2 \times 10^7$.

分析

显然,$f(n)$ 是积性函数,考虑线性筛。

  1. 当 $x$为素数时, $f(x)=2$,即 $(1,x)$ 和 $(x,1)$;
  2. 当 $x$ 的最小质因子为 $p$,且 $p \nmid \frac{x}{p}$ 时,$f(x) = f(p)f(\frac{x}{p}) = 2f(\frac{x}{p})$;
  3. 当 $x$ 的最小的质因数为 $p$,且 $p \mid \frac{x}{p}$
    • 如果 $p \mid \frac{x}{p^2}$,那么 $x$ 中的 $p$ 的指数至少为3,即不管如何划分 $(a, b)$,两个数中一定有一个数其 $p$ 的指数大于等于2,即不存在合法的方案
    • 否则, $x$中 $p$ 的指数就为2,把这两个 $p$ 分别分给 $a$ 和 $b$,剩余的 $\frac{x}{p^2}$就是一个子问题,即 $f(x) = f(\frac{x}{p^2}) = f(\frac{x}{p})f(\frac{1}{p}) = f(\frac{x}{p})/2$
#include<bits/stdc++.h>
using namespace std; const int maxn = 2e7 + ;
int n;
int vis[maxn], primes[maxn], primeCnt;
int f[maxn], s[maxn]; //f(i)的前缀和 void seive()
{
f[] = ;
for(int i = ;i <= maxn;i++)
{
if(!vis[i])
{
primes[++primeCnt] = i;
f[i] = ;
}
for(int j=;j <= primeCnt && (long long)i * primes[j] <= maxn;j++)
{
vis[i *primes[j]] = true;
if(i % primes[j] == )
{
f[i *primes[j]] = (i / primes[j] % primes[j] == )? : f[i/primes[j]];
break;
}
else f[i * primes[j]] = f[i] * ;
}
}
} int main()
{
seive();
for(int i = ;i <= maxn;i++) s[i] = s[i-]+f[i]; int T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
printf("%d\n", s[n]);
}
}

参考链接:https://oi.men.ci/jsk-30999/#%D0%B4%D0%B0%D0%BB%D0%B5%D0%B5

2018 南京网络预赛Sum - 线性筛的更多相关文章

  1. 2018 南京网络预赛Sum ——莫比乌斯反演

    题意 设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数.求 $\displaystyle  \sum_{i=1}^nf(i)$,$n \leq 2e7$. 分析 显然,可 ...

  2. 2018 南京网络预赛Sum - 离线分段打表

    题意 设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数. 例如,$f(6)=4$,因为 $6 = 1 \times 6 = 2 \times 3 = 3 \times 2 ...

  3. ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)

    题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...

  4. 计蒜客 30999 - Sum - [找规律+线性筛][2018ICPC南京网络预赛J题]

    题目链接:https://nanti.jisuanke.com/t/30999 样例输入258 样例输出814 题意: squarefree数是指不含有完全平方数( 1 除外)因子的数, 现在一个数字 ...

  5. ACM-ICPC 2018 南京赛区网络预赛 Sum

    A square-free integer is an integer which is indivisible by any square number except 11. For example ...

  6. ACM-ICPC 2018 南京赛区网络预赛Sum,线性筛处理积性函数

    SUM 题意:f(n)是n可以拆成多少组n=a*b,a和b都是不包含平方因子的方案数目,对于a!=b,n=a*b和n=b*a算两种方案,求∑i=1nf(i) 首先我们可以知道,n=1时f(1)=1, ...

  7. 2018 南京预选赛 J Sum ( 欧拉素数筛 、Square-free Number、DP )

    题目链接 题意 : 定义不能被平方数整除的数为 Square-free Number 定义 F(i) = 有几对不同的 a 和 b 使得 i = a * b 且 a .b 都是 Square-free ...

  8. ACM-ICPC 2018 南京网络赛

    题目顺序:A C E G I J L A. An Olympian Math Problem 打表,找规律,发现答案为n-1 C. GDY 题意: m张卡片,标号1-13: n个玩家,标号1-n:每个 ...

  9. 2018南京网络赛 - Skr 回文树

    题意:求本质不同的回文串(大整数)的数字和 由回文树的性质可知贡献只在首次进入某个新节点时产生 那么只需由pos和len算出距离把左边右边删掉再算好base重复\(O(n)\)次即可 位移那段写的略微 ...

随机推荐

  1. localStorage存取储数组。(存对象同理)

    var array = ['111','222','333','444','555']; 存window.localStorage.setItem('array',JSON.stringify(arr ...

  2. 为什么用JS取不到cookie的值?解决方法如下!

    注意:cookie是基于域名来储存的.要放到测试服务器上或者本地localhost服务器上才会生效.cookie具有不同域名下储存不可共享的特性.单纯的本地一个html页面打开是无效的. 明明在浏览中 ...

  3. 通俗化理解Spring3 IoC的原理和主要组件

      ♣什么是IoC? ♣通俗化理解IoC原理 ♣IoC好处 ♣工厂模式 ♣IoC的主要组件 ♣IoC的应用实例 ♣附:实例代码 1.什么是IoC(控制反转)? Spring3框架的核心是实现控制反转( ...

  4. UnityC#中修改RectTransform

    1.改变RectTransform的Left和Buttom GetComponent<RectTransform>().offsetMax = new Vector2(left, top) ...

  5. Java 实现简单的 RPC 框架

    RPC 简介 RPC,全称为 Remote Procedure Call,即远程过程调用,它是一个计算机通信协议.它允许像调用本地服务一样调用远程服务.它可以有不同的实现方式,而不需要了解底层网络技术 ...

  6. c#基于TCP/IP、CIP协议的欧姆龙PLC通信

    一.关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是一个点到点的面向对象协议,能够实现工业器件(传感器,执行器)之间的连接,和高等级的控制器之间的连 ...

  7. Kong命令(二)service

    service介绍: service 是声明了一组name.host.port.protocol等配置的函数.可以绑定route.upstream上下游服务.并且对于route.upstream可以绑 ...

  8. java封装数据类型——Long

    Long 是长整型 long 的封装数据类型.我们知道 long 相对于 int 的差异就是数据表示的范围扩大了,其它大部分特性都是一样的.所以 Long 跟 Integer 大部分方法都是相同的. ...

  9. CSS图片Img等比例缩放且居中显示

    常用来做图片放大显示的遮罩层imgScale HTML <div id="imgScale" > <img src=""> </d ...

  10. es6中Array.from()

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组. 那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象. 1.将类数组对象转换为真正数 ...