【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)
3561: DZY Loves Math VI
Time Limit: 10 Sec Memory Limit: 256 MB
Submit: 205 Solved: 141Description
给定正整数n,m。求Input
一行两个整数n,m。Output
一个整数,为答案模1000000007后的值。Sample Input
5 4Sample Output
424HINT
数据规模:
1<=n,m<=500000,共有3组数据。
Source
【分析】
式子已经推出来了,然而后面。。。我觉得我学了假的数论。。。
好吧,推式子。。
下面省了一些
$$\sum_{i=1}^{n}\sum_{j=1}^{m} lcm(i,j)^{gcd(i,j)}$$
$$=\sum_{i=1}^{n}\sum_{j=1}^{m} {[\dfrac{i*j}{gcd(i,j)}]}^{gcd(i,j)}$$
$$=\sum_{d=1}^{min(n,m)}d^d \sum_{i'=1}^{n/d} \sum_{j'=1}^{m/d} (i'*j')^d [gcd(i',j')==1]$$
$$=\sum_{d=1}^{min(n,m)}d^d\sum_{d'=1}^{min(n,m)/d} \mu(d')\sum_{i'=1}^{\dfrac{n}{d*d'}}(i'*d')^d*\sum_{j'=1}^{\dfrac{n}{d*d'}}(j'*d')^d$$
$$如果你觉得上面难看就看下面吧$$

$$如果你觉得下面难看就看上面吧$$
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define Mod 1000000007
#define Maxn 500010
#define LL long long int mymin(int x,int y) {return x<y?x:y;} int mu[Maxn],pri[Maxn],pl;
bool vis[Maxn]; LL qpow(LL x,int b)
{
LL ans=;
while(b)
{
if(b&) ans=(ans*x)%Mod;
x=(x*x)%Mod;
b>>=;
}
return ans;
} void init()
{
pl=;
memset(vis,,sizeof(vis));
mu[]=;
for(int i=;i<=Maxn-;i++)
{
if(!vis[i]) pri[++pl]=i,mu[i]=-;
for(int j=;j<=pl;j++)
{
if(i*pri[j]>Maxn-) break;
vis[i*pri[j]]=;
if(i%pri[j]==) mu[i*pri[j]]=;
else mu[i*pri[j]]=mu[i]*mu[pri[j]];
if(i%pri[j]==) break;
}
}
} int a[Maxn],sum[Maxn];
void ffind(int n,int m)
{
int ans=;
if(m>n) swap(m,n);
for(int i=;i<=n;i++) a[i]=;
for(int i=;i<=m;i++)
{
int x=qpow(i,i),y=;
for(int j=;j*i<=n;j++)
{
a[j]=(LL)a[j]*j%Mod;
sum[j]=(sum[j-]+a[j])%Mod;
}
for (int j=;j*i<=m;j++)
y=((LL)a[j]*a[j]%Mod*sum[m/i/j]%Mod*sum[n/i/j]%Mod*mu[j]+y+Mod)%Mod;
ans=(ans+(LL)x*y%Mod)%Mod;
}
printf("%d\n",ans);
} int main()
{
int n,m;
init();
scanf("%d%d",&n,&m);
ffind(n,m);
return ;
}
发现这个lych_cys大神的代码挺简短的,而且好像挺快的,LL都是算的时候才用。。
2017-03-23 21:56:35
【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)的更多相关文章
- BZOJ 3561: DZY Loves Math VI 莫比乌斯反演+复杂度分析
推到了一个推不下去的形式,然后就不会了 ~ 看题解后傻了:我推的是对的,推不下去是因为不需要再推了. 复杂度看似很大,但其实是均摊 $O(n)$ 的,看来分析复杂度也是一个能力啊 ~ code: #i ...
- 【BZOJ 3561】 DZY Loves Math VI
题目: 给定正整数n,m.求 题解: 水题有益身心健康.(博客园的辣鸡数学公式) 其实到这我想强上伯努利数,然后发现$n^2$的伯努利数,emmmmmm 发现这个式子可以算时间复杂度,emmmmm ...
- 【bzoj3561】DZY Loves Math VI 莫比乌斯反演
题目描述 给定正整数n,m.求 输入 一行两个整数n,m. 输出 一个整数,为答案模1000000007后的值. 样例输入 5 4 样例输出 424 题解 莫比乌斯反演 (为了方便,以下公式默认$ ...
- BZOJ3561 DZY Loves Math VI 莫比乌斯反演
传送门 看到\(gcd\)相关先推式子(默认\(N \leq M\)): \(\begin{align*} \sum\limits_{i=1}^N \sum\limits_{j=1}^M (lcm(i ...
- 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 ...
- 【BZOJ3561】DZY Loves Math VI (数论)
[BZOJ3561]DZY Loves Math VI (数论) 题面 BZOJ 题解 \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\sum_ ...
- 【BZOJ3309】DZY Loves Math(莫比乌斯反演)
[BZOJ3309]DZY Loves Math(莫比乌斯反演) 题面 求 \[\sum_{i=1}^a\sum_{j=1}^bf(gcd(a,b))\] 其中,\(f(x)\)表示\(x\)分解质因 ...
- 【BZOJ】3309: DZY Loves Math 莫比乌斯反演优化
3309: DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007) ...
- [BZOJ3561] DZY Loves Math VI
(14.10.28改) 本来只想写BZOJ3739:DZY Loves Math VIII的,不过因为和VI有关系,而且也没别人写过VI的题解,那么写下. 不过我还不会插公式…… http://www ...
随机推荐
- 01 DIV+CSS 固定页面布局
本文讲解使用DIV+CSS布局最基本的内容,读完本文你讲会使用DIV+CSS进行简单的页面布局. DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是 ...
- bluebird -1 New Promise方法
new Promise new Promise(function(function resolve, function reject) resolver) -> Promise 创建一个Prom ...
- asp.net DataTable导出 excel的方法记录(第三方)
官网:http://npoi.codeplex.com/ 简单应用,主要是可以实现我们想要的简单效果,呵呵 需要引入dll,可以在官网下载,也可在下面下载 protected void getExce ...
- 【BZOJ】4753: [Jsoi2016]最佳团体 01分数规划+树上背包
[题意]n个人,每个人有价值ai和代价bi和一个依赖对象ri<i,选择 i 时 ri 也必须选择(ri=0时不依赖),求选择k个人使得Σai/Σbi最大.n<=2500,ai,bi< ...
- python学习笔记(十二)之函数
牛刀小试: 定义一个无参函数 >>> def myFirstFunc(): ... print("Hello python") ... print("h ...
- 【leetcode 简单】第六题 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...
- 天梯赛 L2-014 列车调度 (模拟)
火车站的列车调度铁轨的结构如下图所示. Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口 ...
- eclipse加速/Nginx配置跨域代理
下班时间到啦! --下班都是他们的,而我,还是什么都没有. eclipse加速 去掉包含js文件的包的js验证,否则每次启动都需要进行校验(右击项目->properties) Nginx配置跨域 ...
- JWT 拓展
JWT适用场景 https://www.jianshu.com/p/af8360b83a9f 适用于一次性操作的认证,颁布一个很短过期时间的JWT给浏览器. 无状态的JWT无法实现精确的在线人数统计. ...
- 常用的css3新特性总结
1:CSS3阴影 box-shadow的使用和技巧总结: 基本语法是{box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscol ...
