BZOJ 4174 tty的求助 莫比乌斯反演
题目大意:求∑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的求助 莫比乌斯反演相关推荐
- BZOJ 2820 YY的GCD 莫比乌斯反演
2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...
- BZOJ 1114 Number theory(莫比乌斯反演+预处理)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...
- BZOJ 2820 YY的GCD 莫比乌斯反演
题意:链接 方法:莫比乌斯反演 解析: 这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力.只是当你A掉这道题后发现正解?都将近5s时.就放弃了这个念头. 相同的式子我们能够直接搬过来.p ...
- BZOJ 2301 Problem b(莫比乌斯反演+分块优化)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37166 题意:对于给出的n个询问,每次求有多少个数对(x,y),满 ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- BZOJ 2301 - Problem b(莫比乌斯反演+容斥)
题目链接 https://cn.vjudge.net/problem/HYSBZ-2301 [题意] 对于给出的 n 个询问,每次求有多少个数对(x,y)(x,y) ,满足 a≤x≤b,c≤y≤da≤ ...
- BZOJ 4407: 于神之怒加强版|莫比乌斯反演
不会搞数学公式很苦恼!! flag:会写数学公式之后一定好好写一发题解 非常感谢龙爷(sd第一男选手!!可惜神犇都不写blog)提供线性筛做法 2.16----------------- 一下均设n& ...
- BZOJ 5330 Luogu P4607 [SDOI2018]反回文串 (莫比乌斯反演、Pollard Rho算法)
题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=5330 (Luogu) https://www.luogu.org/prob ...
- BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)
BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...
最新文章
- WAL streaming (max_wal_senders 0) requires wal_level replica or logical
- 剑指 offer 编程题 C++ 版总结(中)
- C++(STL):28 ---关联式容器map用法
- EasyARM-iMX283A的Linux 开发环境构建
- es6 Generator.prototype.return()方法
- android mysql 乱码_android POST数据遇到的UTF-8编码(乱码)问题解决办法
- 飞狐的日线 java_JAVA 版 ATX-Client
- Hasura GraphQL 内部表结构
- 更换S60第三版程序图标
- 用于MPEG视频流的使能服务质量中间件
- 软件实施工程师到底是做什么的?
- 设计-前端设计尺寸与规范
- 惠普笔记本的Windows10和Ubuntu20.04双系统安装教程
- 2款 新版月老在线牵盲盒+交友盲盒+小纸条盲盒+交友匹配+同城交友小程序源学习
- Hexo搭建个人博客(十五)| 酒香也怕巷子深,让百度收录你的站点
- 关于logrotate的使用
- 手拉手微商俱乐部 微信营销实战课程开讲啦
- swiper 上滑触发_最火英雄小书包:用最矮的身高,打出最高的输出,死上最多的次数...
- 区块链:从底层技术时代走向产品时代的跃进
- WPF Chart DynamicDataDisplay的横坐标显示日期的解决方案
热门文章
- rabbitmq一:基本概念
- 星云精准测试之用例魔方
- [CF396E]On Iteration of One Well-Known Function
- 哥本哈根能效中心:阿里云用清洁的计算能力改变世界
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题...
- 火狐不支持event.keyCode,用jquery中的event.which轻松解决。
- [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品
- 一天一点T-SQL:使用登录触发器进行安全管控
- video processing on Mac and iOS
- boostrap3常用组件集合