●BZOJ 3561 DZY Loves Math VI
题链:
http://www.lydsy.com/JudgeOnline/problem.php?id=3561
题解:
莫比乌斯反演
$$\begin{aligned}
ANS&=\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)^{gcd(i,j)}\\
&=\sum_{g=1}^{min(n,m)}\sum_{i=1}^{\frac{n}{g}}\sum_{j=1}^{\frac{m}{g}}g^gi^gj^g[gcd(i,j)==1]\\
&=\sum_{g=1}^{min(n,m)}g^g\sum_{i=1}^{\frac{n}{g}}\sum_{j=1}^{\frac{m}{g}}i^gj^g\sum_{d|gcd(i,j)}\mu(d)\\
&=\sum_{g=1}^{min(n,m)}g^g\sum_{d=1}^{min(\frac{n}{g},\frac{m}{g})}\mu(d) \sum_{i=1}^{\frac{n}{gd}}(id)^g\sum_{j=1}^{\frac{m}{gd}}(jd)^g\\
&=\sum_{g=1}^{min(n,m)}g^g\sum_{d=1}^{min(\frac{n}{g},\frac{m}{g})}\mu(d)\times d^{2g} \sum_{i=1}^{\frac{n}{gd}}i^g\sum_{j=1}^{\frac{m}{gd}}j^g\\
\end{aligned}$$
上面这个式子直接$O(NlogN)$计算就好了。
代码:
#include<bits/stdc++.h>
#define MAXN 500050
using namespace std;
const int mod=1000000007;
int mu[MAXN],mi[MAXN],smi[MAXN];
int Pow(int a,int b){
int ret=1;
while(b){
if(b&1) ret=1ll*ret*a%mod;
b>>=1; a=1ll*a*a%mod;
}
return ret;
}
void Sieve(){
static bool np[MAXN];
static int prime[MAXN],pnt;
mu[1]=1;
for(int i=2;i<=500000;i++){
if(!np[i]) prime[++pnt]=i,mu[i]=-1;
for(int j=1;j<=pnt&&i<=500000/prime[j];j++){
np[i*prime[j]]=1;
if(i%prime[j]) mu[i*prime[j]]=-mu[i];
else break;
}
}
}
int main(){
Sieve();
int n,m,ans=0; scanf("%d%d",&n,&m);
if(n>m) swap(n,m);
for(int i=1;i<=500000;i++) mi[i]=1;
for(int g=1,gg;g<=n;g++){
gg=Pow(g,g);
for(int i=1;i<=m/g;i++)
mi[i]=1ll*mi[i]*i%mod,smi[i]=(1ll*smi[i-1]+mi[i])%mod;
for(int d=1;d<=n/g;d++)
ans=(1ll*ans+1ll*mu[d]*mi[d]%mod*mi[d]%mod*smi[n/(g*d)]%mod*smi[m/(g*d)]%mod*gg%mod)%mod;
}
printf("%d",ans);
return 0;
}
●BZOJ 3561 DZY Loves Math VI的更多相关文章
- BZOJ 3561 DZY Loves Math VI
BZOJ 3561 DZY Loves Math VI 求\(\sum_{i=1}^{n}\sum_{j=1}^{m}\text{lcm}(i,j)^{\gcd(i,j)}\),钦定\(n\leq m ...
- BZOJ 3561: DZY Loves Math VI 莫比乌斯反演+复杂度分析
推到了一个推不下去的形式,然后就不会了 ~ 看题解后傻了:我推的是对的,推不下去是因为不需要再推了. 复杂度看似很大,但其实是均摊 $O(n)$ 的,看来分析复杂度也是一个能力啊 ~ code: #i ...
- 【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)
3561: DZY Loves Math VI Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 205 Solved: 141 Description ...
- 【BZOJ】3561: DZY Loves Math VI
题意 求\(\sum_{i=1}^{n} \sum_{j=1}^{m} lcm(i, j)^{gcd(i, j)}\)(\(n, m<=500000\)) 分析 很显然要死推莫比乌斯 题解 设\ ...
- 【BZOJ3561】DZY Loves Math VI (数论)
[BZOJ3561]DZY Loves Math VI (数论) 题面 BZOJ 题解 \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\sum_ ...
- ●BZOJ 3309 DZY Loves Math
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3309 题解: 莫比乌斯反演,线筛 化一化式子: f(x)表示x的质因子分解中的最大幂指数 $ ...
- [BZOJ3561] DZY Loves Math VI
(14.10.28改) 本来只想写BZOJ3739:DZY Loves Math VIII的,不过因为和VI有关系,而且也没别人写过VI的题解,那么写下. 不过我还不会插公式…… http://www ...
- BZOJ 3309: DZY Loves Math
3309: DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 761 Solved: 401[Submit][Status ...
- BZOJ 3512: DZY Loves Math IV [杜教筛]
3512: DZY Loves Math IV 题意:求\(\sum_{i=1}^n \sum_{j=1}^m \varphi(ij)\),\(n \le 10^5, m \le 10^9\) n较小 ...
随机推荐
- C语言第二周作业----分支结构
一.PTA实验作业 题目1.7-1计算分段函数 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 1.实验代码 int ma ...
- Beta版本敏捷冲刺每日报告——Day1
1.情况简述 Beta阶段第一次Scrum Meeting 敏捷开发起止时间 2017.11.2 08:00 -- 2017.11.2 21:00 讨论时间地点 2017.11.2晚6:00,软工所实 ...
- 团队作业4——第一次项目冲刺(Alpha版本) Day 2
小队@JMUZJB-集美震惊部 一.Daily Scrum Meeting照片 二.Burndown Chart 燃尽图 三.项目进展 成员 工作 丘雨晨 环境配置 刘向东 数据库搭建,环境配置 江泽 ...
- 库函数strstr的实现
没什么说的,常规思路: 函数原型:const char* StrStr(const char *str1, const char *str2) 方法一: str1:源字符串: str2:需要查找的目的 ...
- BEM 中文翻译
BEM 原文请看 getBEM Introduction(介绍) Block 独立实体,独立的意义 Examples:header, container, menu, checkbox, input ...
- 浏览器端类EXCEL表格插件 版本更新 - 智表ZCELL产品V1.1.0.1版本发布
智表(ZCELL),浏览器下纯JS表格控件,为您提供EXCEL般的智能体验! 纯国产化.高性价比的可靠解决方案. 更新说明 让大家久等了.因为最近忙其他项目,发布时间稍有延迟. 下次版本更新 ...
- 使用 Vue 和 epub.js 制作电子书阅读器
ePub 简介 ePub 是一种电子书的标准格式,平时我看的电子书大部分是这种格式.在手机上我一般用"多看"阅读 ePub 电子书,在 Windows 上找不到用起来比较顺心的软件 ...
- LAMP 搭建
p { margin-bottom: 0.25cm; line-height: 120% } LAMP 搭建 承 Ubuntu 17.10.1安装, 定制. 参考 电子工业出版社, Ubuntu完美应 ...
- NoSQL&MongoDB
MongoDB: Is NoSQL(技术的实现,并非是一个特定的技术,与RMDS对立):Not only SQL 大数据问题:BigData,eg:同时访问几个页面,代码实现几个页面访问量的大小? F ...
- api-gateway实践(13)新服务网关 - 断路保护/熔断机制
参考链接:SpringCloud的Hystrix(五) Hystrix机制 新需求列表 1.在线测试 根据定义,生成输入界面, 点击测试, 验证参数,发起调用,返回执行结果 2.熔断保护 两个实现类: ...