【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2956

【题目大意】

  求∑∑((n%i)*(m%j))其中1<=i<=n,1<=j<=m,i≠j。

【题解】

   $∑_{i=1}^{n}∑_{j=1}^{m}((n\mod i)*(m\mod j))(i≠j)$
  $=∑_{i=1}^{n}∑_{j=1}^{m}(n-\lfloor \frac{n}{i}\rfloor*i)*(m-\lfloor \frac{m}{j}\rfloor*j)-∑_{i=1}^{min(n,m)}(n-\lfloor \frac{n}{i}\rfloor*i)*(m-\lfloor \frac{m}{i}\rfloor*i)$
  $=∑_{i=1}^{n}(n-\lfloor \frac{n}{i}\rfloor)*∑_{i=1}^{m}(m-\lfloor \frac{m}{i}\rfloor)$
  $-∑_{i=1}^{min(n,m)}n*m-n*\lfloor \frac{m}{i}\rfloor*i-m*\lfloor \frac{n}{i}\rfloor*i+\lfloor \frac{n}{i}\rfloor\lfloor \frac{m}{i}\rfloor*i^2$

  我们对于n/i分段统计即可。

【代码】

#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long LL;
const LL inv6=3323403;
const LL mod=19940417;
LL n,m,ans;
LL sum(LL a,LL b){return (b-a+1)*(a+b)/2%mod;}
LL sum2(LL x){return x*(x+1)%mod*(2*x+1)%mod*inv6%mod;}
LL cal(LL n){LL res=0;for(LL l=1,r;l<=n;l=r+1){r=n/(n/l);res=(res+n*(r-l+1)%mod-sum(l,r)*(n/l))%mod;}return (res+mod)%mod;
}
int main(){while(~scanf("%lld%lld",&n,&m)){ans=cal(n)*cal(m)%mod;if(n>m)swap(n,m);for(int l=1,r;l<=n;l=r+1){r=min(n/(n/l),m/(m/l));LL s1=n*m%mod*(r-l+1)%mod;LL s2=(n/l)*(m/l)%mod*(sum2(r)-sum2(l-1)+mod)%mod;LL s3=(n/l*m+m/l*n)%mod*sum(l,r)%mod;ans=(ans-(s1+s2-s3)%mod+mod)%mod;}printf("%lld\n",ans);}return 0;
}

  

转载于:https://www.cnblogs.com/forever97/p/bzoj2956.html

BZOJ 2956 模积和(分块)相关推荐

  1. BZOJ 2956 模积和

    题目链接:模积和 这种有模运算的题一般都要把取模运算给去掉,改成除法取下整的模式.即\(a\bmod b=a-\lfloor \frac{a}{b} \rfloor b\) 然后我们先把\(i=j\) ...

  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. BZOJ 2821 作诗 分块

    BZOJ 2821 作诗 Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一 ...

  6. bzoj 2821:作诗 分块

    题目大意: 给定一个长为n的序列,每次询问一个区间内出现了偶数次的数的个数.强制在线. 题解: 据说这道题正解只用了5MB的内存 QAQ... 反正我是120MB + 卡过去的... 我们可以分块! ...

  7. BZOJ 2388--旅行规划(分块单调栈二分)

    2388: 旅行规划 Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 405  Solved: 118 [Submit][Status][Discus ...

  8. Bzoj 2453: 维护队列 Bzoj 2120: 数颜色 分块,bitset

    2453: 维护队列 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 578  Solved: 247 [Submit][Status][Discus ...

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

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

最新文章

  1. C语言再学习 -- 分支与跳转语句
  2. C++ STL vector的输出
  3. start mysql server_mysql5我的难点,快捷操作(mysql.server stop start),开机启动
  4. Leecode刷题热题HOT100(5)——最长回文子串
  5. 数据库设计_SQL数据库设计(数据建模)
  6. jni hook java_java通过jni调用hook无效
  7. 计算机组成原理课程(唐朔飞)最全笔记
  8. vue3 ts 手动封装message消息组件
  9. 基于Matlab的 傅里叶变换 绘制图形
  10. linux内存映射(一)
  11. 斐讯K1路由器刷入openwrt及通过netkeeper连接校园网
  12. Windows_Server_2016 远程桌面120天授权过期
  13. unctf2020部分wp
  14. 【ITool】js多个页面传值
  15. 【OpenFOAM】——OpenFOAM入门算例学习
  16. Unity3d基础教程7-灯光(灯光阴影参数设置及lightmapping制作)
  17. 配置路由器用SSH登陆
  18. ImageMagick将多张图片拼接成一张图片_怎么免费把图片转成PDF?教你4种实用方法...
  19. python download
  20. 如何选一款适合企业的进销存软件?这款软件推荐给你

热门文章

  1. coremark 官网对各种单片机的测评评分
  2. 用步进正弦激励法测量计算机声卡输出输入幅值频响函数
  3. C++STL 常用 函数 用法
  4. blkdiag--生成以输入元素为对角线元素的矩阵
  5. C++中的函数指针和函数对象总结
  6. R语言较为特殊的一些运算符
  7. Python读写json文件中文编码问题
  8. leetcode 79:simplify path
  9. php fastcgi_finish_request用法
  10. Android 相机,视频录制