BZOJ 2956 模积和(分块)
【题目链接】 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 模积和(分块)相关推荐
- BZOJ 2956 模积和
题目链接:模积和 这种有模运算的题一般都要把取模运算给去掉,改成除法取下整的模式.即\(a\bmod b=a-\lfloor \frac{a}{b} \rfloor b\) 然后我们先把\(i=j\) ...
- BZOJ2956 (模积和)
题目:2956: 模积和 题意:求∑∑((n mod i)*(m mod j))其中1<=i<=n,1<=j<=m,i≠j.然后mod 19940417 本题坑我太久啊,思路: ...
- P2260 [清华集训2012]模积和,P2834 能力测验(二维除法分块)
P2260 [清华集训2012]模积和 推导过程 我们假定n<=mn <= mn<=m ∑i=1n∑j=1m(nmodi)(mmodj),i≠j\sum_{i = 1} ^{n} ...
- 数论分块专题复习(余数求和+模积和+Ice Rain+The Fool)
文章目录 前提知识复习 T1:余数求和 title solution code T2:Ice Rain title solution code T3:The Fool title solution c ...
- BZOJ 2821 作诗 分块
BZOJ 2821 作诗 Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一 ...
- bzoj 2821:作诗 分块
题目大意: 给定一个长为n的序列,每次询问一个区间内出现了偶数次的数的个数.强制在线. 题解: 据说这道题正解只用了5MB的内存 QAQ... 反正我是120MB + 卡过去的... 我们可以分块! ...
- BZOJ 2388--旅行规划(分块单调栈二分)
2388: 旅行规划 Time Limit: 50 Sec Memory Limit: 128 MB Submit: 405 Solved: 118 [Submit][Status][Discus ...
- Bzoj 2453: 维护队列 Bzoj 2120: 数颜色 分块,bitset
2453: 维护队列 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 578 Solved: 247 [Submit][Status][Discus ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
最新文章
- C语言再学习 -- 分支与跳转语句
- C++ STL vector的输出
- start mysql server_mysql5我的难点,快捷操作(mysql.server stop start),开机启动
- Leecode刷题热题HOT100(5)——最长回文子串
- 数据库设计_SQL数据库设计(数据建模)
- jni hook java_java通过jni调用hook无效
- 计算机组成原理课程(唐朔飞)最全笔记
- vue3 ts 手动封装message消息组件
- 基于Matlab的 傅里叶变换 绘制图形
- linux内存映射(一)
- 斐讯K1路由器刷入openwrt及通过netkeeper连接校园网
- Windows_Server_2016 远程桌面120天授权过期
- unctf2020部分wp
- 【ITool】js多个页面传值
- 【OpenFOAM】——OpenFOAM入门算例学习
- Unity3d基础教程7-灯光(灯光阴影参数设置及lightmapping制作)
- 配置路由器用SSH登陆
- ImageMagick将多张图片拼接成一张图片_怎么免费把图片转成PDF?教你4种实用方法...
- python download
- 如何选一款适合企业的进销存软件?这款软件推荐给你