\(\\\)

\(Description\)


若\(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)\)。

求\(\sum_{i=l}^rf(i)\)对\(998244353\)取模的结果。

  • \(l,r\in [1,10^{14}]\)

\(\\\)

\(Solution\)


首先要知道这里定义的 \(f\) 函数的值其实就是这个数的因数个数。

连乘的含义是容斥原理,考虑要构成的约数从每一个质因子里分别选取了多少个,所以有指数加一连乘的种类数。

然后所求就变成了区间内每个数的因子个数之和,问题可以转化为前缀相减。

然后考虑区间\([1,N]\)内所有数的因子个数之和,这个东西可以枚举这个因子是什么,即

\[ans=\sum_{d=1}^N \lfloor\frac{N}{d} \rfloor
\]

然后就是除法分块的板子了。

\(\\\)

\(Code\)


#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define R register
#define gc getchar
#define N 4000010
using namespace std;
typedef long long ll; inline ll rd(){
ll x=0; bool f=0; char c=gc();
while(!isdigit(c)){if(c=='-')f=1;c=gc();}
while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=gc();}
return f?-x:x;
} ll n,a[N];
int res,ans[N]; int main(){
n=rd();
for(R int i=1;i<=n;++i) a[i]=rd();
for(R int i=1,r=1;i<=n;++i){
if(r<i) r=i;
while(r<n&&a[r+1]%a[i]==0) ++r;
ans[i]=r;
}
for(R int i=n,l=n;i>0;--i){
if(l>i) l=i;
while(l>1&&a[l-1]%a[i]==0) --l;
res=max(res,ans[i]-l+1);
}
printf("%d",res);
return 0;
}

[ Luogu 3935 ] Calculating的更多相关文章

  1. [洛谷3935]Calculating

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

  2. 长时间停留在calculating requirements and dependencies 解决方案

    如果Eclipse花费了很长的时间calculating requirements and dependencies(计算需求和依赖性 ) 这个问题通常就是在点击安装之后显示“Calculating ...

  3. Luogu 魔法学院杯-第二弹(萌新的第一法blog)

    虽然有点久远  还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题  沉迷游戏,伤感情 #include <queue> ...

  4. 长时间停留在calculating requirements and dependencies 的解决方案

    如果Eclipse花费了很长的时间calculating requirements and dependencies(计算需求和依赖性 ) 这个问题通常就是在点击安装之后显示“Calculating ...

  5. Calculating Stereo Pairs

    Calculating Stereo Pairs Written by Paul BourkeJuly 1999 Introduction The following discusses comput ...

  6. luogu p1268 树的重量——构造,真正考验编程能力

    题目链接:http://www.luogu.org/problem/show?pid=1268#sub -------- 这道题费了我不少心思= =其实思路和标称毫无差别,但是由于不习惯ACM风格的题 ...

  7. Calculating simple running totals in SQL Server

    Running total for Oracle: SELECT somedate, somevalue,SUM(somevalue) OVER(ORDER BY somedate ROWS BETW ...

  8. [luogu P2170] 选学霸(并查集+dp)

    题目传送门:https://www.luogu.org/problem/show?pid=2170 题目描述 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一 ...

  9. [luogu P2647] 最大收益(贪心+dp)

    题目传送门:https://www.luogu.org/problem/show?pid=2647 题目描述 现在你面前有n个物品,编号分别为1,2,3,--,n.你可以在这当中任意选择任意多个物品. ...

随机推荐

  1. RabbitMQ环境搭建教程收集(待实践)

    先收集,后续再实践. http://blog.csdn.net/zyz511919766/article/details/41896823 http://blog.chinaunix.net/uid- ...

  2. how to read openstack code : routes

    When coding a web system, you have to think about an important problem, how to map urls to logic. Op ...

  3. 1.spring boot要求最低jdk1.8,平安默认1.6问题,-》安装JDK1.8 2.maven 3.3.3要求最低jdk1.7->安装jdk 1.8

    1.spring boot要求最低jdk1.8,平安默认1.6问题,->安装JDK1.82.maven 3.3.3要求最低jdk1.7->安装jdk 1.8

  4. C# 控制台程序如何输出Messagebox

    1 添加如下引用   2 添加引用和Messagebox的代码.   3 测试可行                

  5. AE After Effect 渲染如何输出设置

    各种输出设置值的对比情况. Microsoft Video1压缩方法情况(该模式下无法采用RGB+Alpha): 一 深度为"数千种颜色",缩放为1280×720(HDV/HDTV ...

  6. 【动态规划】Dynamic Programming

    动态规划 一.动态规划 动态规划(Dynamic Programming)是一种设计的技巧,是解决多阶段决策过程最优化问题的通用方法. 基本思想:将待求解问题分解成若干个子问题,先求解子问题,然后从这 ...

  7. iOS 代码安全加固--反编译和代码混淆

    一.class-dump反编译 1.将打包的ipa反编译下,.ipa改成.zip,并解压 6.右击—显示包内容,找到如下有个白框黑底的  7.将其复制到桌面xx文件夹中,在终端中输入相关命令 cd 进 ...

  8. lydsy1013: [JSOI2008]球形空间产生器sphere 高斯消元

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1013 1013: [JSOI2008]球形空间产生器sphere 时间限制: 1 Sec  内 ...

  9. 南阳oj 语言入门 A+B paoblem 题目477 题目844

     A+Bproblem   题目844 两个数字翻转后相加   比方10+12 翻转后01+21=22 #include<stdio.h> int main() { int ji(in ...

  10. 【codevs2011】【LNOI2013】最小距离之和

    floyed水题 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstr ...