题目大意:求∑Nn=1∑Mm=1∑m−1k=0⌊nk+xm⌋ mod 998244353

如果n和m都已经确定了。如今要求这坨玩应:
∑m−1k=0⌊nk+xm⌋
=∑m−1k=0(⌊nk%m+xm⌋+nk−nk%mm)
=∑m−1k=0(⌊nk%m+xm⌋+nkm−nk%mm)

我们一项一项考虑

令d=gcd(n,m),那么有

∑m−1k=0⌊nk%m+xm⌋
=d∗∑md−1k=0⌊kd+xm⌋
=d∗(md∗x−x%mm+∑md−1k=0⌊kd+x%mm⌋)
=d∗(md∗x−x%mm+∑md−1k=0[kd+x%m≥m])
=d∗(x−x%md+⌊x%md⌋)
=d∗⌊xd⌋

∑m−1k=0nkm=nm∗m∗(m−1)2=n∗m−n2

∑m−1k=0nk%mm=d∗∑md−1k=0kdm=d2m∗(md−1)∗md2=m−d2

故答案为
∑Nn=1∑Mm=1(d∗⌊xd⌋+n∗m−n2−m−d2)
=12∗∑Nn=1∑Mm=1(2∗d∗⌊xd⌋+d+n∗m−n−m)
=12∗(S(N)∗S(M)−S(N)∗m−S(M)∗n+∑min(N,M)d=1(d+2∗d∗⌊xd⌋)∑min(⌊Nd⌋,⌊Md⌋)k=1μ(k)∗⌊Nd∗k⌋∗⌊Md∗k⌋)

当中S(n)=n∗(n+1)2

然后O(nlogn)枚举d和k就可以

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 500500
#define MOD 998244353
using namespace std;
int n,m,x;
long long ans;
int mu[M];
int prime[M],tot;
bool not_prime[M];
void Linear_Shaker()
{int i,j;mu[1]=1;for(i=2;i<=500000;i++){if(!not_prime[i]){prime[++tot]=i;mu[i]=MOD-1;}for(j=1;prime[j]*i<=500000;j++){not_prime[prime[j]*i]=true;if(i%prime[j]==0){mu[prime[j]*i]=0;break;}mu[prime[j]*i]=(MOD-mu[i])%MOD;}}
}
long long Sum(long long n)
{return (n*(n+1)>>1)%MOD;
}
int main()
{int i,j;cin>>n>>m>>x;Linear_Shaker();ans=((Sum(n)*Sum(m)-Sum(n)*m-Sum(m)*n)%MOD+MOD)%MOD;if(n>m) swap(n,m);for(i=1;i<=n;i++){long long temp=i+x/i*i*2;for(j=1;j*i<=n;j++)(ans+=temp*mu[j]%MOD*(n/i/j)%MOD*(m/i/j)%MOD)%=MOD;}cout<<(ans*(MOD+1>>1)%MOD)<<endl;return 0;
}

BZOJ 4174 tty的求助 莫比乌斯反演相关推荐

  1. BZOJ 2820 YY的GCD 莫比乌斯反演

    2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...

  2. BZOJ 1114 Number theory(莫比乌斯反演+预处理)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...

  3. BZOJ 2820 YY的GCD 莫比乌斯反演

    题意:链接 方法:莫比乌斯反演 解析: 这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力.只是当你A掉这道题后发现正解?都将近5s时.就放弃了这个念头. 相同的式子我们能够直接搬过来.p ...

  4. BZOJ 2301 Problem b(莫比乌斯反演+分块优化)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37166 题意:对于给出的n个询问,每次求有多少个数对(x,y),满 ...

  5. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  6. BZOJ 2301 - Problem b(莫比乌斯反演+容斥)

    题目链接 https://cn.vjudge.net/problem/HYSBZ-2301 [题意] 对于给出的 n 个询问,每次求有多少个数对(x,y)(x,y) ,满足 a≤x≤b,c≤y≤da≤ ...

  7. BZOJ 4407: 于神之怒加强版|莫比乌斯反演

    不会搞数学公式很苦恼!! flag:会写数学公式之后一定好好写一发题解 非常感谢龙爷(sd第一男选手!!可惜神犇都不写blog)提供线性筛做法 2.16----------------- 一下均设n& ...

  8. BZOJ 5330 Luogu P4607 [SDOI2018]反回文串 (莫比乌斯反演、Pollard Rho算法)

    题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=5330 (Luogu) https://www.luogu.org/prob ...

  9. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)

    BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...

最新文章

  1. WAL streaming (max_wal_senders 0) requires wal_level replica or logical
  2. 剑指 offer 编程题 C++ 版总结(中)
  3. C++(STL):28 ---关联式容器map用法
  4. EasyARM-iMX283A的Linux 开发环境构建
  5. es6 Generator.prototype.return()方法
  6. android mysql 乱码_android POST数据遇到的UTF-8编码(乱码)问题解决办法
  7. 飞狐的日线 java_JAVA 版 ATX-Client
  8. Hasura GraphQL 内部表结构
  9. 更换S60第三版程序图标
  10. 用于MPEG视频流的使能服务质量中间件
  11. 软件实施工程师到底是做什么的?
  12. 设计-前端设计尺寸与规范
  13. 惠普笔记本的Windows10和Ubuntu20.04双系统安装教程
  14. 2款 新版月老在线牵盲盒+交友盲盒+小纸条盲盒+交友匹配+同城交友小程序源学习
  15. Hexo搭建个人博客(十五)| 酒香也怕巷子深,让百度收录你的站点
  16. 关于logrotate的使用
  17. 手拉手微商俱乐部 微信营销实战课程开讲啦
  18. swiper 上滑触发_最火英雄小书包:用最矮的身高,打出最高的输出,死上最多的次数...
  19. 区块链:从底层技术时代走向产品时代的跃进
  20. WPF Chart DynamicDataDisplay的横坐标显示日期的解决方案

热门文章

  1. rabbitmq一:基本概念
  2. 星云精准测试之用例魔方
  3. [CF396E]On Iteration of One Well-Known Function
  4. 哥本哈根能效中心:阿里云用清洁的计算能力改变世界
  5. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题...
  6. 火狐不支持event.keyCode,用jquery中的event.which轻松解决。
  7. [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品
  8. 一天一点T-SQL:使用登录触发器进行安全管控
  9. video processing on Mac and iOS
  10. boostrap3常用组件集合