题意

\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}n\%i*m\%j*[i!=j]\)

\(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}n\%i*m\%j-\sum\limits_{i=1}^{min(n,m)}n\%i*m\%i\)

\(\sum\limits_{i=1}^n(n-\lfloor\frac{n}{i}\rfloor*i)\sum\limits_{j=1}^m(m-\lfloor\frac{m}{j}\rfloor*j)-\sum\limits_{i=1}^{min(n,m)}n*m-(n*\lfloor\frac{m}{i}\rfloor+m*\lfloor\frac{n}{i}\rfloor)*i+\lfloor\frac{n}{i}\rfloor*\lfloor\frac{m}{i}\rfloor*i^2\)

除法分块就好了。

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=19940417;
const int inv6=3323403;
const int inf=1e9;
int n,m,ans;
inline int calc1(int l,int r){return ((l+r)*(r-l+1)/2)%mod;}
inline int calc2(int x){return x*(x+1)%mod*(2*x+1)%mod*inv6%mod;}
inline int calc(int x)
{
int res=0;
for(int l=1,r;l<=x;l=r+1)
{
r=x/(x/l);
int tmp=x*(r-l+1)%mod-(x/l)*calc1(l,r)%mod;
res=((res+tmp)%mod+mod)%mod;
}
return res;
}
signed main()
{
scanf("%lld%lld",&n,&m);
if(n>m)swap(n,m);
ans=calc(n)*calc(m)%mod;
for(int l=1,r;l<=n;l=r+1)
{
r=min(n/(n/l),m/(m/l));
int tmp1,tmp2,tmp3;
tmp1=n*m%mod*(r-l+1)%mod;
tmp2=(n*(m/l)%mod+m*(n/l)%mod)%mod*calc1(l,r)%mod;
tmp3=(n/l)*(m/l)%mod*((calc2(r)-calc2(l-1))%mod+mod)%mod;
ans=((ans-tmp1+tmp2-tmp3)%mod+mod)%mod;
}
printf("%lld",ans);
return 0;
}

luoguP2260 [清华集训2012]模积和的更多相关文章

  1. P2260 [清华集训2012]模积和

    P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ ...

  2. P2260 [清华集训2012]模积和 【整除分块】

    一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...

  3. 洛谷 P2260 [清华集训2012]模积和 || bzoj2956

    https://www.lydsy.com/JudgeOnline/problem.php?id=2956 https://www.luogu.org/problemnew/show/P2260 暴力 ...

  4. 洛谷P2260 [清华集训2012]模积和(容斥+数论分块)

    题意 https://www.luogu.com.cn/problem/P2260 思路 具体思路见下图: 注意这个模数不是质数,不能用快速幂来求逆元,要用扩展gcd. 代码 #include< ...

  5. BSOJ 4062 -- 【清华集训2012】串珠子

    Description 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不 ...

  6. Luogu P4247 [清华集训2012]序列操作

    题意 给定一个长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作,每次操作形如以下三种: I a b c,表示将 \([a,b]\) 内的元素加 \(c\). R a b,表示将 \([a ...

  7. UOJ 275. 【清华集训2016】组合数问题

    UOJ 275. [清华集训2016]组合数问题 组合数 $C_n^m $表示的是从 \(n\) 个物品中选出 \(m\) 个物品的方案数.举个例子,从$ (1,2,3)(1,2,3)$ 三个物品中选 ...

  8. Loj #2331. 「清华集训 2017」某位歌姬的故事

    Loj #2331. 「清华集训 2017」某位歌姬的故事 IA 是一名会唱歌的女孩子. IOI2018 就要来了,IA 决定给参赛选手们写一首歌,以表达美好的祝愿.这首歌一共有 \(n\) 个音符, ...

  9. Loj 2320.「清华集训 2017」生成树计数

    Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\ ...

随机推荐

  1. PHP常用数字函数以及排序函数

    一:数字函数 .ceil() 进一取整 示例:ceil(0.9) 结果为1 .abs() 绝对值 示例:abs(-1) 结果为1 .rand() 随机数 示例:rand(1. 100) 1到100 以 ...

  2. 在 React 组件中监听 android 手机物理返回/回退/back键事件

    当前端页面嵌入到 webview 中运行时,有时会需要监听手机的物理返回按键事件来做一些自定义的操作. 比如我最近遇到的,在一个页面里面有批量选择的功能,当点击手机的返回键时,清除页面上的选中状态.我 ...

  3. conda基本知识

    卸载anaconda: rm -rf anaconda3 (anaconda文件夹名称) conda删除虚拟环境 在终端执行:conda remove -n your_env_name(虚拟环境名称) ...

  4. Linux iSCSI 磁盘共享管理

    Linux iSCSI 磁盘共享管理 iSCSI 服务是通过服务端(target)与客户端(initiator)的形式来提供服务.iSCSI 服务端用于存放存储源的服务器,将磁盘空间共享给客户使用,客 ...

  5. Redis学习记录及Jedis代码示例

    文章目录 二.Redis简介 三.Redis安装 1. 下载并解压安装 2. 安装C语言编译环境 3. 修改安装位置 4. 编译安装 5.启动Redis服务器 ①默认启动 ②定制配置项启动 [1]准备 ...

  6. System.InvalidOperationException: 'Cannot create more than one System.Windows.Application instance in the same AppDomain.'

    System.Windows.Application is a singleton: its constructor must only be invoked once (including App. ...

  7. RookeyFrame在线新增模块

    今天给大家演示下在线新增模块的功能,在线新增模块跟在vs中写model实体类区别不大,线上新增少了手动初始化的过程,新增后模块同样具备新增.修改.删除.查看.导入.导出.复制.批量编辑.回收站.草稿箱 ...

  8. Winform中使用控件的Dock属性设计窗体布局,使不随窗体缩放而改变

    场景 在新建一个Winform窗体后,拖拽控件设置其布局如下 如果只是单纯的这么设计,我们在运行后,如果对窗口进行缩放就会导致如下 所以我们需要在设计页面布局时对控件进行定位设置. 注: 博客主页:h ...

  9. Thread 另类用法,如何执行一段可能死锁/卡死/死循环的代码

    场景与需求 需要执行一段第三方的代码,这段代码可能死锁/卡死/死循环,在超时之后,如果没有结束,则认为任务执行失败,退出执行. 实现方案1:使用 Task 超时 实现方法参考: https://www ...

  10. X264-应用工程

    接下来的几篇博客中,具体学习下X264的实现过程. 源代码的分析参考了雷神的博客,感谢雷神!博客链接:https://blog.csdn.net/leixiaohua1020/article/deta ...