题目链接:模积和

  这种有模运算的题一般都要把取模运算给去掉,改成除法取下整的模式。即\(a\bmod b=a-\lfloor \frac{a}{b} \rfloor b\)

  然后我们先把\(i=j\)的也统计进答案,最后再减去即可。接下来就是推式子时间(\(n \le m\)):

\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m(n \bmod i)(m \bmod j) \\
=&\sum_{i=1}^n(n \bmod i)\sum_{j=1}^m(m \bmod j) \\
=&\sum_{i=1}^n(n-i\lfloor \frac{n}{i} \rfloor)\sum_{j=1}^m(m-j\lfloor \frac{m}{j} \rfloor) \\
=&(n^2-\sum_{i=1}^ni\lfloor \frac{n}{i} \rfloor)(m^2-\sum_{i=1}^mi\lfloor \frac{m}{i} \rfloor)
\end{aligned}

\begin{aligned}
&\sum_{i=1}^n(n \bmod i)(m \bmod i) \\
=&\sum_{i=1}^n(n-i\lfloor \frac{n}{i} \rfloor)(m-i\lfloor \frac{m}{i} \rfloor) \\
=&n^2m-m\sum_{i=1}^ni\lfloor \frac{n}{i} \rfloor-n\sum_{i=1}^ni\lfloor \frac{m}{i} \rfloor+\sum_{i=1}^n\lfloor \frac{n}{i} \rfloor\lfloor \frac{m}{i} \rfloor i^2
\end{aligned}

  然后分块计算即可。上下两个式子一减就是答案。

  下面贴代码:

#include<cstdio>
#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
#define mod 19940417
#define llg long long
#define min(a,b) (a<b?a:b)const int n6=7776;
int n,m,a[3];llg S(int x){return (1ll*x*(x+1)>>1)%mod;}
llg S2(int x){a[0]=x,a[1]=x+1,a[2]=2*x+1;for(int i=0;i<3;i++) if(a[i]%2==0){a[i]/=2;break;}for(int i=0;i<3;i++) if(a[i]%3==0){a[i]/=3;break;}return 1ll*a[0]*a[1]%mod*a[2]%mod;
}llg work(int x,int y){llg now=0;for(int i=1,nt;i<=x;i=nt+1)nt=min(y/(y/i),x),now+=1ll*(y/i)*(S(nt)-S(i-1));return now%mod;
}int main(){File("a");scanf("%d %d",&n,&m);if(n>m) n^=m^=n^=m;llg s1=work(n,n),ans;ans=(1ll*n*n-s1)%mod*(1ll*m*m%mod-work(m,m))%mod;ans+=s1*m+work(n,m)*n; ans%=mod;ans-=1ll*n*n%mod*m; ans%=mod;for(int i=1,nt;i<=n;i=nt+1){nt=min(n/(n/i),m/(m/i));ans-=(S2(nt)-S2(i-1))*(m/i)%mod*(n/i);ans%=mod;}printf("%lld",(ans+mod)%mod);return 0;
}

转载于:https://www.cnblogs.com/lcf-2000/p/6811864.html

BZOJ 2956 模积和相关推荐

  1. BZOJ 2956 模积和(分块)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2956 [题目大意] 求∑∑((n%i)*(m%j))其中1<=i<=n,1 ...

  2. BZOJ2956 (模积和)

    题目:2956: 模积和 题意:求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j.然后mod 19940417 本题坑我太久啊,思路: ...

  3. P2260 [清华集训2012]模积和,P2834 能力测验(二维除法分块)

    P2260 [清华集训2012]模积和 推导过程 我们假定n<=mn <= mn<=m ∑i=1n∑j=1m(nmodi)(mmodj),i≠j\sum_{i = 1} ^{n} ...

  4. 数论分块专题复习(余数求和+模积和+Ice Rain+The Fool)

    文章目录 前提知识复习 T1:余数求和 title solution code T2:Ice Rain title solution code T3:The Fool title solution c ...

  5. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

  6. [颓废史]蒟蒻的刷题记录

    QAQ蒟蒻一枚,其实我就是来提供水题库的. 以下记录从2016年开始. 1.1 1227: [SDOI2009]虔诚的墓主人 树状数组+离散化 3132: 上帝造题的七分钟 树状数组 二维区间加减+查 ...

  7. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  8. 数论与数学专题练习(一)(201802~201805)

    数论与数学专题练习(一)(201802~201805) 手动博客搬家: 本文发表于20180224 00:33:28, 原地址https://blog.csdn.net/suncongbo/artic ...

  9. 银联高校极客挑战赛 初赛 第一场、第二场合集(3+3题)

    第一场 A. 码队女朋友的王者之路 测试用例 测试1 4 5 2 2 00101 5 1 2 11110 6 2 3 000000 7 6 6 0000001 测试2 1 1 1 1 0 测试3 1 ...

最新文章

  1. gffread处理工具
  2. 超酷实用的jQuery焦点图赏析及源码
  3. 洛谷 P1690 贪婪的Copy
  4. 007_Curator框架二
  5. python列表元素零的移动_python列表多行
  6. python django升级安装sqlite3后在python命令行还是显示旧版本的解决办法
  7. [Qt教程] 第43篇 进阶(三)对象树与拥有权
  8. iOS9 白名单问题 -canOpenURL: failed for URL: xx - error:This app is not allowed to query for scheme x...
  9. hazelcast_Java:如何在不到5分钟的时间内通过Hazelcast提高生产力
  10. jboss eap 7_使用JBoss EAP 7的HTTP / 2
  11. 2017.4.22 loli测试
  12. python 多线程就这么简单(续)
  13. MEF入门之不求甚解,但力求简单能讲明白(四)
  14. oc21--super
  15. CASS9.1计算土方量实例
  16. 小程序会话服务器,完美解决小程序session问题
  17. Linux shell中21的含义解释 (全网最全,看完就懂)
  18. Transformer相关的各种预训练模型优点缺点对比总结与资料收集(Transformer/Bert/Albert/RoBerta/ERNIE/XLnet/ELECTRA)
  19. Oracle学习(八)——————————————子查询
  20. 【微机原理 实验】可编程外围接口芯片8255(4)(硬件-含汇编代码)

热门文章

  1. 音创a55怎么安装系统_教您怎么用光驱重装系统,安装系统教程!
  2. python __repr__
  3. Java MyBatis 别名
  4. 微投抖的1080_1080P不到三千元 微投价格战竟如此激烈
  5. 常常被人忽略的VC备份
  6. 技术分享——机房搬迁工作步骤及方案详解
  7. Css学习总结(4)——CSS选择器总结
  8. Java基础学习总结(94)——Java线程再学习
  9. Maven学习总结(3)——使用Maven构建项目
  10. android php实时聊天工具,Android_Android 应用APP加入聊天功能,简介 自去年 LeanCloud 发布实时 - phpStudy...