原题链接

一看我感觉是个什么很难的式子……

结果读完了才发现本质太简单。

算法一

完全按照那个题目所说的,真的把质因数分解的结果保留。

最后乘。

时间复杂度:\(O(r \sqrt{r})\).

实际得分:\(40pts\).

(实在想不到比这得分更低的算法了)

算法二

机智的发现是个因数枚举。

然后枚举因数。

时间复杂度: \(O(r \sqrt{r})\).

实际得分: \(40pts\).

(只是码量少一点)

算法三

推式子。

\(f_x\) 其实就是 \(x\) 的因数个数。

我们只需分别求出 \(\sum_{i=1}^r f_i\) 和 \(\sum_{i=1}^{l-1} f_i\) ,再相减即可。

(日常前缀和思路)

\[\sum_{i=1}^r f_i
\]

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

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

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

(这步的依据是:我们不枚举每个数的因数,而是考虑每个数作为其它因数所产生的贡献)

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

(这步的依据是:从 \(1\) 到 \(n\) 共有 \(\lfloor \frac{r}{j} \rfloor\) 个数是 \(j\) 的倍数)

然后到这里,我们暴力枚举。

时间复杂度: \(O(r)\).

实际得分:\(60pts\).

算法四

暴力枚举个头?

答案摆在面前还在那暴力

明明是整除分块好吧。

不知道整除分块是啥?

浅谈整除分块

\(\texttt{OK}\),你发现,这题竟然是 整除分块的模板题

时间复杂度: \(O(\sqrt{r})\).

实际得分:\(100pts\).

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const ll MOD=998244353; inline ll read(){char ch=getchar();ll f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
ll x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;} int main(){
ll l=read(),r=read();
ll ans=0; l--;
for(ll i=1,t;i<=r;i=t+1) {
t=r/(r/i); ll len=(t-i+1)%MOD;
ans=(ans+len*(r/i)%MOD)%MOD;
} //这是 1~r 的
for(ll i=1,t;i<=l;i=t+1) {
t=l/(l/i); ll len=(t-i+1)%MOD;
ans=(ans-len*(l/i)%MOD+MOD)%MOD; //这是 1~(l-1) 的
//为了防止模出负数,我们加上 MOD 再模
} printf("%lld\n",(ans+MOD)%MOD);
return 0;
}

洛谷 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 (莫比乌斯反演)

    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 ...

  3. [洛谷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 ...

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

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

  5. 洛谷 P3935 Calculating

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

  6. 洛谷NOIp热身赛题解

    洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...

  7. 洛谷P2827 蚯蚓 题解

    洛谷P2827 蚯蚓 题解 题目描述 本题中,我们将用符号 ⌊c⌋ 表示对 c 向下取整. 蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓. 蛐蛐国里现 ...

  8. 洛谷P1816 忠诚 题解

    洛谷P1816 忠诚 题解 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人 ...

  9. [POI 2008&洛谷P3467]PLA-Postering 题解(单调栈)

    [POI 2008&洛谷P3467]PLA-Postering Description Byteburg市东边的建筑都是以旧结构形式建造的:建筑互相紧挨着,之间没有空间.它们共同形成了一条长长 ...

随机推荐

  1. Android空包签名

    空包签名 搜狗.优亿等Android市场,上传应用需要提供一个与要上传的应用相同签名的空包.这个空包是相应官方市场提供的,下载好之后需要使用命令行进行签名.具命令如下: 1 jarsigner -ve ...

  2. c#百度IP定位API使用方法

    c#百度IP定位API使用方法 1.先建立一个收集信息的实体类 IPModel.cs: using System; using System.Collections.Generic; using Sy ...

  3. 上周 GitHub 热点速览 vol.09:手撕 LeetCode 一日 star 破两千

    作者:HelloGitHub-小鱼干 摘要(用于 公众号/博客园等地方):上周 GitHub 趋势榜相较上上周就如同前故事一般,跌到不行,无论是新晋开源小项,还是坚挺老项目,Star 增长量都不如之前 ...

  4. web前端——美化效果总结

    概述 项目开发过程中使用到了不少web前端美化效果的方法,总结一下 1 图片作为背景 要实现的效果是,任意一张图片"img-page-background.png",不需要调整图片 ...

  5. 前端每日实战:26# 视频演示如何用不到 50 行 CSS 代码,创作按钮被从纸上掀起的立体效果

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/KRbXGe 可交互视频教程 此视频 ...

  6. JS如何进行对象的深克隆(深拷贝)?

    JS中,一般的赋值传递的都是对象/数组的引用,并没有真正的深拷贝一个对象,如何进行对象的深拷贝呢? var a = {name : 'miay'}; var b = a; b.name = 'Jone ...

  7. springcloud项目实现自定义权限注解进行接口权限验证

    一般在项目开发中会根据登录人员的权限大小对接口也会设置权限,那么对接口权限是怎么实现的呢,大多数都是用自定义权限注解,只需要在接口上加上一个注解就可以实现对接口的权限拦截,是否对该接口有权调用 接下来 ...

  8. 修改js文件,引发的404问题

    记录一个bug,本地测不出来,客户后台却404,web测试可参考.(不知道是不是通用的) 先介绍下背景 我们是web产品,存在发布机.管理机.js文件,页面会引用到这些js文件.出于安全考虑,规定js ...

  9. video标签加载视频有声音却黑屏

    问题 昨天用户上传了一个视频文件,然而发现虽然有声音但是黑屏. 解释 因为原视频的编码是用 mp4v 格式的,它需要专用的解码器.而 chrome 并不支持,所以无法播放. 然后如果用转码功能转成用 ...

  10. c#语言 中FileStream类的基本使用

    FileStream类不是静态类,使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进行读和写,多用于对大文件进行读写,区别于File类的是它对 ...