P3935 Calculating

题目描述

若xx分解质因数结果为\(x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n},令f(x)=(k_1+1)(k_2+1)\cdots (k_n+1)f(x)=(k1​+1)(k2​+1)⋯(kn​+1),\)求\(\sum_{i=l}^rf(i)\)对\(998244353\)取模的结果。

输入输出格式

输入格式:

输入共一行,两个数,\(l,r。\)

输出格式:

输出共一行,一个数,为\(\sum_{i=l}^rf(i)\)对\(998244353\)取模的结果。

输入输出样例

输入样例#1:

2 4

输出样例#1:

7

说明

Solution

如果你做过一些莫比乌斯反演的题,那么这道题可以说就是一个整除分块的模板

首先我们需要知道一个定理:约数个数定理

设\(f(x)\)为\(x\)的约数个数

\[n=\prod_{i=1}^k{p_i^{a_i}}\to f(n)=\prod_{i=1}^k{(a_i+1)}
\]

上述式子中,\(p_i\)为质数

证明:

由约数定义可知\(p1^{a1}\)的约数有:\(p1^0, p1^1, p1^2......p1^a1\) ,共\((a1+1)\)个;同理\(p2^{a2}\)的约数有\((a2+1)\)个......\(pk^{ak}\)的约数有\((ak+1)\)个。根据乘法原理答案就是上述式子

考虑一下题目所求,

\[Ans=\sum_{i=l}^{r}f(i)
\]

转换一下变成

\[Ans=\sum_{i=1}^rf(i)-\sum_{i=1}^{l-1}f(i)
\]

对于\(f(n)\),我们可以认为

\[f(n)=\sum_{d|n}1
\]

令\(Ans1=\sum_{i=1}^rf(i)\),由此推出

\[Ans1=\sum_{i=1}^r\sum_{d|i}1
\]

更换枚举项,改为枚举i的因子

\[Ans1=\sum_{d=1}^r\lfloor\frac{r}{d}\rfloor
\]

同理求出\(Ans2\),然后用一下整除分块\(O(\sqrt n)\)预处理就可以了,不会的看一下我上面放的链接

Code

#include<bits/stdc++.h>
#define rg register
#define il inline
#define Min(a,b) (a)<(b)?(a):(b)
#define Max(a,b) (a)>(b)?(a):(b)
#define lol long long
using namespace std; const lol mod=998244353; void in(lol &ans) {
ans=0; lol f=1; char i=getchar();
while(i<'0' || i>'9') {if(i=='-') f=-1; i=getchar();}
while(i>='0' && i<='9') ans=(ans<<1)+(ans<<3)+i-'0',i=getchar();
ans*=f;
} int main()
{
lol ans1=0,ans2=0; lol n,m; in(n),in(m),n--;
for(rg lol l=1,r,len;l<=n;l=r+1) {
r=n/(n/l),len=r-l+1;
ans1=(1ll*(ans1%mod+len%mod*(n/l)%mod)%mod)%mod;
}
for(rg lol l=1,r,len;l<=m;l=r+1) {
r=m/(m/l),len=r-l+1;
ans2=(1ll*(ans2%mod+len%mod*(m/l)%mod)%mod)%mod;
}
printf("%lld\n",(ans2-ans1+mod)%mod);//注意这里,最后答案一定要(ans+mod)%mod,不然可能会出现负数
return 0;
}

博主蒟蒻,随意转载.但必须附上原文链接

http://www.cnblogs.com/real-l/

洛谷P3935 Calculating (莫比乌斯反演)的更多相关文章

  1. 洛谷P3935 Calculating(整除分块)

    题目链接:洛谷 题目大意:定义 $f(x)=\prod^n_{i=1}(k_i+1)$,其中 $x$ 分解质因数结果为 $x=\prod^n_{i=1}{p_i}^{k_i}$.求 $\sum^r_{ ...

  2. 洛谷 - P3935 - Calculating - 整除分块

    https://www.luogu.org/fe/problem/P3935 求: \(F(n)=\sum\limits_{i=1}^{n}d(i)\) 枚举因子\(d\),每个因子\(d\)都给其倍 ...

  3. 洛谷 P3935 Calculating

    虽然对这道题没有什么帮助,但是还是记一下:约数个数也是可以线性筛的 http://www.cnblogs.com/xzz_233/p/8365414.html 测正确性题目:https://www.l ...

  4. [洛谷P3935]Calculating

    题目大意:设把$x$分解质因数的结果为$x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n}$,令$f(x)=(k_1+1)(k_2+1)\cdots (k_n+1)$,求$\su ...

  5. 洛谷 P3935 Calculating 题解

    原题链接 一看我感觉是个什么很难的式子-- 结果读完了才发现本质太简单. 算法一 完全按照那个题目所说的,真的把质因数分解的结果保留. 最后乘. 时间复杂度:\(O(r \sqrt{r})\). 实际 ...

  6. [洛谷3935]Calculating

    题目链接:https://www.luogu.org/problemnew/show/P3935 首先显然有\(\sum\limits_{i=l}^rf(i)=\sum\limits_{i=1}^rf ...

  7. 洛谷P3935 Calculation [数论分块]

    题目传送门 格式难调,题面就不放了. 分析: 实际上这个就是这道题的升级版,没什么可讲的,数论分块搞就是了. Code: //It is made by HolseLee on 18th Jul 20 ...

  8. 整除分块学习笔记+[CQOI2007]余数求和(洛谷P2261,BZOJ1257)

    上模板题例题: [CQOI2007]余数求和 洛谷 BZOJ 题目大意:求 $\sum^n_{i=1}k\ mod\ i$ 的值. 等等……这题就学了三天C++的都会吧? $1\leq n,k\leq ...

  9. 莫比乌斯反演学习笔记+[POI2007]Zap(洛谷P3455,BZOJ1101)

    先看一道例题:[POI2007]Zap BZOJ 洛谷 题目大意:$T$ 组数据,求 $\sum^n_{i=1}\sum^m_{j=1}[gcd(i,j)=k]$ $1\leq T\leq 50000 ...

随机推荐

  1. 博客美化—添加萌萌的live2D看板娘(不能再简单了)

    看着很多博客都有live2D的萌萌哒看板娘,我闲着有空说干就干. 从参考博客的附件中下载资源文件 waifu.css waifu-tips.js live2d.js flat-ui.min.css// ...

  2. MongoDB->NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"

    关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么 ...

  3. Ubuntu 16.04 安装显卡驱动后循环登录和无法设置分辨率的一种解决方案

    1. 安装环境 电脑:MSI GP63 显卡:GeForce GTX 1070 系统:Ubuntu 16.04 驱动版本:NVIDIA 384.130 2. 循环登录 如果按照这篇文章 Ubuntu ...

  4. PK3Err0040

    PK3Err0040 The target device is not ready for debugging. Please check your configuration bit setting ...

  5. 【转】Linux内核结构详解

    Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信. 1.进程调度 (SCHED):控制进程对CPU的访问.当需要选择下一个进程运行时,由调度程序选择最值得运行 ...

  6. 在Excel里面,单元格里输入公式后只显示公式本身,不显示结果,怎么办

    这种情况是对Excel进行了设置,设置的就是在单元格中只显示公式,不显示结果,解决的办法有两个: 1 用快捷键CTR+~ 2 点击"公式"选项卡,然后反选里面的"显示公式 ...

  7. Thunder团队第五周 - Scrum会议1

    Scrum会议1 小组名称:Thunder 项目名称:i阅app Scrum Master:杨梓瑞 工作照片: 邹双黛在照相,所以图片中没有该同学. 参会成员: 王航:http://www.cnblo ...

  8. MyBatis 基本构成与框架搭建

    核心组件 SqlSessionFactoryBuilder (构造器) 根据配置信息(eg:mybatis-config.xml)或者代码来生成SqlSessionFactory. SqlSessio ...

  9. Hadoop 版本 生态圈 MapReduce模型

    忘的差不多了, 先补概念, 然后开始搭建集群实战 ... . 一 Hadoop版本 和 生态圈 1. Hadoop版本 (1) Apache Hadoop版本介绍 Apache的开源项目开发流程 : ...

  10. LintCode-70.二叉树的层次遍历 II

    二叉树的层次遍历 II 给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 按照 ...