题目链接:https://www.luogu.org/problemnew/show/P3935

首先显然有\(\sum\limits_{i=l}^rf(i)=\sum\limits_{i=1}^rf(i)-\sum\limits_{i=1}^{l-1}f(i)\),于是问题转化为了如何求\(\sum\limits_{i=1}^nf(i)\),即\(\sum\limits_{i=1}^n\sum\limits_{d|i}1\),调整枚举顺序有\(\sum\limits_{d=1}^n\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}1\),即\(\sum\limits_{d=1}^n\lfloor\dfrac{n}{d}\rfloor\),由于\(n\)很大,所以我们使用整除分块即可

  1. /*program from Wolfycz*/
  2. #include<cmath>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<iostream>
  6. #include<algorithm>
  7. #define inf 0x7f7f7f7f
  8. using namespace std;
  9. typedef long long ll;
  10. typedef unsigned int ui;
  11. typedef unsigned long long ull;
  12. inline char gc(){
  13. static char buf[1000000],*p1=buf,*p2=buf;
  14. return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
  15. }
  16. inline int frd(){
  17. int x=0,f=1; char ch=gc();
  18. for (;ch<'0'||ch>'9';ch=gc()) if (ch=='-') f=-1;
  19. for (;ch>='0'&&ch<='9';ch=gc()) x=(x<<3)+(x<<1)+ch-'0';
  20. return x*f;
  21. }
  22. inline int read(){
  23. int x=0,f=1; char ch=getchar();
  24. for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;
  25. for (;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+ch-'0';
  26. return x*f;
  27. }
  28. inline void print(int x){
  29. if (x<0) putchar('-'),x=-x;
  30. if (x>9) print(x/10);
  31. putchar(x%10+'0');
  32. }
  33. const int p=998244353;
  34. int solve(ll n){
  35. int res=0;
  36. for (ll i=1,pos;i<=n;i=pos+1){
  37. pos=n/(n/i); int len=(pos-i+1)%p;
  38. res=(res+1ll*len*(n/i)%p)%p;
  39. }
  40. return res;
  41. }
  42. int main(){
  43. ll l,r;
  44. scanf("%lld%lld",&l,&r);
  45. printf("%d\n",(solve(r)-solve(l-1)+p)%p);
  46. return 0;
  47. }

[洛谷3935]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. 洛谷 P3935 Calculating 题解

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

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

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

  8. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  9. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

随机推荐

  1. raise 与 raise ... from 的区别

    起步 Python 的 raise 和 raise from 之间的区别是什么? try: print(1 / 0) except Exception as exc: raise RuntimeErr ...

  2. 万亿级日志与行为数据存储查询技术剖析(续)——Tindex是改造的lucene和druid

    五.Tindex 数果智能根据开源的方案自研了一套数据存储的解决方案,该方案的索引层通过改造Lucene实现,数据查询和索引写入框架通过扩展Druid实现.既保证了数据的实时性和指标自由定义的问题,又 ...

  3. RequireJS 加载 js 执行顺序

    初次接触RequireJS 对文档理解不很透彻,自己通过测试测到的执行顺序: 文档结构: |-amaze | -js | -amazeui.js | -jquery.min.js | -main.js ...

  4. Python:深浅拷贝

    导入模块: >>> import copy 深浅拷贝: >>> X = copy.copy(Y) #浅拷贝:只拷贝顶级的对象,或者说:父级对象 >>&g ...

  5. python中类的定义方法

    # coding =utf-8 ## 类的定义 ##-------------------------------------------------- class Employee: empCoun ...

  6. Asterisk 通话过程中执行动作(即applicationmap )的使用方法和电话转会议的实现

      asterisk在正常通话过程中执行拨号计划中动作是通过feature.conf中的[applicationmap ]下定义的,举例如下: nway-start => *0,callee,M ...

  7. [SHOI 2017] 寿司餐厅

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4873 [算法] 注意到题目中的限制条件可表述为 : 若选择区间[L , R] , 则 ...

  8. MTK UART串口调试

    一.UART初始化 1. kernel-3.18/drivers/misc/mediatek/uart/uart.c static int __init mtk_uart_init(void) { ; ...

  9. camera调试命令

    问题:adb install -r Camera.apk 2864 KB/s (7603465 bytes in 2.592s)Failure [INSTALL_FAILED_UPDATE_INCOM ...

  10. 将List<T>集合用DataGridView展示

    一.若要将List<T>集合的值赋值给DataGridView,首先要DataGridView中的列的DataPropertyName的值要和此集合的T类型的属性字段的名称,类型一致,并且 ...