当前位置: 首页 > news >正文

P2260 学习笔记

题目传送门

我们要求

\[\sum_{i=1}^n \sum_{j=1}^m [i \ne j] \cdot (n \bmod i) \cdot (m \bmod j) \bmod 19940417 \]

注意到

\[a \bmod b=a-b\lfloor \frac ab \rfloor \]

原式可化简为

\[\sum_{i=1}^n \sum_{j=1}^m [i \ne j] \cdot (n-i\lfloor \frac ni \rfloor) \cdot (m-j \lfloor \frac mj \rfloor) \]

\(i \ne j\) 这个限制不好处理,我们可以容斥一下,变成

\[\sum_{i=1}^n \sum_{j=1}^m (n-i \lfloor \frac ni \rfloor) \cdot (m-j \lfloor \frac mj \rfloor)-\sum_{i=1}^{\min(n,m)} (n-i\lfloor \frac ni \rfloor) \cdot (m-i \lfloor \frac mj \rfloor) \]

把双重 \(\sum\) 分开,变成

\[\sum_{i=1}^n (n-i \lfloor \frac ni \rfloor) \sum_{j=1}^m (m-j \lfloor \frac mj \rfloor)-\sum_{i=1}^{\min(n,m)} (n-i \lfloor \frac ni \rfloor) \cdot (m-i \lfloor \frac mi \rfloor) \]

\[A=\sum_{i=1}^n (n-i \lfloor \frac ni \rfloor) \]

\[B=\sum_{j=1}^m (m-j \lfloor \frac mj \rfloor) \]

\[C=\sum_{i=1}^{\min(n,m)} (n-i \lfloor \frac ni \rfloor) (m-i \lfloor \frac mi \rfloor) \]

则答案为

\[(AB-C) \bmod 19940417 \]

计算 \(A\)

\(n\) 提出来,变成

\[n^2-\sum_{i=1}^n i \lfloor \frac ni \rfloor \]

后面的 \(\sum\) 整除分块即可。

计算 \(B\)

同理,把 \(m\) 提出来

\[m^2-\sum_{j=1}^m j \lfloor \frac mj \rfloor \]

后面的 \(\sum\) 整除分块即可。

计算 \(C\)

\[\begin{align*} C&=\sum_{i=1}^{\min(n,m)} (n-i \lfloor \frac ni \rfloor) (m-i \lfloor \frac mi \rfloor)\\ &=\sum_{i=1}^{\min(n,m)} (mn-mi \lfloor \frac ni \rfloor-ni \lfloor \frac mi \rfloor +i^2 \lfloor \frac ni \rfloor \lfloor \frac mi \rfloor)\\ &=\min(n,m) \cdot mn-m \sum_{i=1}^{\min(n,m)} i \lfloor \frac ni \rfloor-n \sum_{i=1}^{\min(n,m)} i\lfloor \frac mi \rfloor +\sum_{i=1}^{\min(n,m)} i^2 \lfloor \frac ni \rfloor \lfloor \frac mi \rfloor\\ \end{align*} \]

二维整除分块即可。

注意到 \(19940417\) 不是质数,需要 exgcd 求逆元

code
#include <bits/stdc++.h>
#define pub public:
#define pri private:
#define fri friend:
#define Ofile(s) freopen(s".in", "r", stdin), freopen (s".out", "w", stdout)
#define Cfile(s) fclose(stdin), fclose(stdout)
#define fast ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;using ll = long long;
using ull = unsigned long long;
using lb = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;constexpr int mod = 19940417;
constexpr int maxn = 2e5 + 5;ll n, m;
ll A, B, C;
ll S2, S3, S4;
ll ans;ll getmod(ll p);
ll exgcd(ll a, ll b, ll &x, ll &y);
ll inverse(ll x);
ll get_sum1(ll k);
ll get_sum2(ll k);
ll calc1(ll x, ll lim);
ll calc2(ll x, ll y, ll lim);int main() {freopen("std.in", "r", stdin);freopen("std.out", "w", stdout);fast;cin >> n >> m;A = (n % mod) * (n % mod) % mod;A = getmod(A - calc1(n, n));B = (m % mod) * (m % mod) % mod;B = getmod(B - calc1(m, m));C = (min(n, m) % mod) * (m % mod) % mod * (n % mod) % mod;S2 = calc1(m, min(n, m));S3 = calc1(n, min(n, m));S4 = calc2(n, m, min(n, m));C = getmod(C - (n % mod) * (S2 % mod) % mod);C = getmod(C - (m % mod) * (S3 % mod) % mod);C = getmod(C + S4);ans = getmod(A * B % mod - C);cout << ans;return 0;
}ll getmod(ll p){return (p % mod + mod) % mod;
}ll exgcd(ll a, ll b, ll &x, ll &y){if (!b){x = 1, y = 0;return a;}	ll g = exgcd(b, a % b, y, x);y -= a / b * x;return g;
}ll inverse(ll x){ll a, b;exgcd(x, mod, a, b);return getmod(a);
}ll get_sum1(ll k){k %= mod;return k * (k + 1) % mod * inverse(2) % mod;
}ll get_sum2(ll k){k %= mod;return k * (k + 1) % mod * (2 * k + 1) % mod * inverse(6) % mod;
}ll calc1(ll x, ll lim){ll res = 0, i = 1;while (i <= lim){ll q = x / i;if (!q)break;ll j = min(x / q, lim);res = (res + (q % mod) * getmod(get_sum1(j) - get_sum1(i - 1)) % mod) % mod;i = j + 1;}return res;
}ll calc2(ll x, ll y, ll lim){ll res = 0, i = 1;while (i <= lim) {ll qx = x / i;ll qm = y / i;ll r = min(x / qx, min(y / qm, lim));res = (res + (qx % mod) * (qm % mod) % mod * getmod(get_sum2(r) - get_sum2(i - 1)) % mod) % mod;i = r + 1;}return res;
}
http://www.jsqmd.com/news/485444/

相关文章:

  • 打开网站显示登录失败:登录失败次数太多已被锁定,请600s重试!错误怎么办|已解决
  • 2026年专精特新小巨人申报机构哪家好?工科信用结果说话的政策赋能专家 - 速递信息
  • 打开网站显示网站转移后无法打开报错提示“No input file specifed错误怎么办|已解决
  • 2026年哈尔滨服务不错的考研培训机构哪家口碑好 - 工业品网
  • 滚珠丝杠加工设备哪家销量高?高性价比国产常州泽尔达,适配多行业需求 - 品牌推荐大师1
  • 好用的逆变器OEM代工来图定制厂家排名,犇拓智造聊城上榜 - 工业推荐榜
  • Html(二):基本框架
  • 2026-03-16 如何清除Jenkins缓存(deepseek)
  • 2026三亚/海南团建首选!海南独角兽旅行社:资质背书+定制化海岛团建方案 - 速递信息
  • 2026求真书院pi节挑战赛T1
  • 2026年靠谱的氟蛋白泡沫灭火剂品牌大揭秘,价格费用怎么算 - 工业设备
  • 关于一篇随笔
  • 聊聊2026年重庆新房装修服务选择,哪家性价比高的公司排名 - mypinpai
  • 讲讲口碑不错的纯玩小包团,景中游国旅在南北疆服务咋样 - 工业品牌热点
  • 求推荐靠谱的AI推荐系统,重庆百创短视频费用怎么算? - myqiye
  • 聊聊重庆10年经验装修公司推荐,全屋整装哪家性价比高? - mypinpai
  • 2026年沈阳、大连等地热门的西点西餐学校推荐,沈阳欧米奇口碑如何 - 工业品牌热点
  • 探寻2026年重庆比较不错的AI推荐平台 靠谱的AI推荐系统有哪些 - myqiye
  • 广告短信平台哪家好?网页短信群发平台推荐 - Qqinqin
  • 太原尖兵搬家|本地自营搬家团队,全城30快速分钟上门,资质全,车型多 - 宁夏壹山网络
  • 打开网站显示Parse error: syntax error, unexpec错误怎么办|已解决
  • 2026年细聊哈尔滨考研培训品牌商,如何选择靠谱机构 - 工业品网
  • PbootCMS后台关闭验证码,登录提示验证码不能空的解决方法
  • 大中型企业CRM系统TOP10:2026年高性价比之选 - SaaS软件-点评
  • 聊聊广州光伏逆变器服务商,犇拓智造性价比高值得推荐 - 工业推荐榜
  • 五子棋
  • 大中企业CRM选型推荐:5款国内实用的主流系统深度评测 - SaaS软件-点评
  • 讲讲性价比高的高倍数泡沫灭火剂,廊坊浩北化工推荐吗? - 工业设备
  • 防爆、防腐、高湿——复杂工况下气体检测仪的定制要点解析 - 品牌推荐大师
  • 港宏装饰作为新房装修大型机构,在重庆的口碑和性价比高吗? - myqiye