luoguP2260 [清华集训2012]模积和
题意
\(\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]模积和的更多相关文章
- P2260 [清华集训2012]模积和
P2260 [清华集训2012]模积和 整除分块+逆元 详细题解移步P2260题解板块 式子可以拆开分别求解,具体见题解 这里主要讲的是整除分块(数论分块)和mod不为素数时如何求逆元 整除分块:求Σ ...
- P2260 [清华集训2012]模积和 【整除分块】
一.题目 P2260 [清华集训2012]模积和 二.分析 参考文章:click here 具体的公式推导可以看参考文章.博主的证明很详细. 自己在写的时候问题不在公式推导,公式还是能够比较顺利的推导 ...
- 洛谷 P2260 [清华集训2012]模积和 || bzoj2956
https://www.lydsy.com/JudgeOnline/problem.php?id=2956 https://www.luogu.org/problemnew/show/P2260 暴力 ...
- 洛谷P2260 [清华集训2012]模积和(容斥+数论分块)
题意 https://www.luogu.com.cn/problem/P2260 思路 具体思路见下图: 注意这个模数不是质数,不能用快速幂来求逆元,要用扩展gcd. 代码 #include< ...
- BSOJ 4062 -- 【清华集训2012】串珠子
Description 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体. 现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不 ...
- Luogu P4247 [清华集训2012]序列操作
题意 给定一个长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作,每次操作形如以下三种: I a b c,表示将 \([a,b]\) 内的元素加 \(c\). R a b,表示将 \([a ...
- UOJ 275. 【清华集训2016】组合数问题
UOJ 275. [清华集训2016]组合数问题 组合数 $C_n^m $表示的是从 \(n\) 个物品中选出 \(m\) 个物品的方案数.举个例子,从$ (1,2,3)(1,2,3)$ 三个物品中选 ...
- Loj #2331. 「清华集训 2017」某位歌姬的故事
Loj #2331. 「清华集训 2017」某位歌姬的故事 IA 是一名会唱歌的女孩子. IOI2018 就要来了,IA 决定给参赛选手们写一首歌,以表达美好的祝愿.这首歌一共有 \(n\) 个音符, ...
- Loj 2320.「清华集训 2017」生成树计数
Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\ ...
随机推荐
- ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于Wi-Fi模块(ESP8266)AT指令TCP透传方式,MQTT通信控制升级(加入数据校验)
前言 这节演示下,上两节写的利用MQTT来控制STM32控制的程序 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootLoader程序(请自行下载) 首先BootLo ...
- 爬虫——爬取Ajax动态加载网页
常见的反爬机制及处理方式 1.Headers反爬虫 :Cookie.Referer.User-Agent 解决方案: 通过F12获取headers,传给requests.get()方法 2.IP限制 ...
- umi+dva+antd新建项目
首先全局安装dva+umiumi:npm install -g umidva:npm install -g dva-cli 通过脚手架创建项目 一: mkdir myapp && cd ...
- powershell玩转iis网站服务器
1 ------------安装------------------ for win7,win8,win8.1,win10控制面板--->程序和功能--->开启关闭windows功能--- ...
- 在项目中使用Solr
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- Vue.js 源码分析(十六) 指令篇 v-on指令详解
可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码,例如: <!DOCTYPE html> <html lang="en"& ...
- HBuilder webApp开发(七)微信/QQ/新浪/腾讯微博分享
链接 https://blog.csdn.net/zhuming3834/article/details/51706256
- ECMAScript 6.0 简要学习
由于在学习vue的时候有许多自己不懂的语法,于是简单的学习一下ES6. 1.ES简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ...
- 如何在点击 a 标签的 onclick 时间时,不触发 window.onbeforeunload 事件
如题! 直接贴代码了: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- 页面直接导出为PDF文件,支持分页与页边距
将WEB页面直接导出为pdf文件是经常会用到的一个功能,尤其是各种报表系统.总结了一下目前几种主流的做法: 在后端用代码生成pdf文件,比如iText一类: 在后端抓取页面并生成pdf文件,比如pha ...