3561: DZY Loves Math VI

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 489  Solved: 323
[Submit][Status][Discuss]

Description

给定正整数n,m。求

Input

一行两个整数n,m。

Output

一个整数,为答案模1000000007后的值。

Sample Input

5 4

Sample Output

424

HINT

数据规模:

1<=n,m<=500000,共有3组数据。

Source

By Jcvb

常年不做数论了,略感生疏。。。

首先和gcd有关的可以枚举公因数:

ANS=∑(d= 1 to n) d^d *f(n/d,m/d,d)。

其中f(x,y,z)表示1<=i<=x,1<=j<=y中gcd(i,j)==1的(xy)^z之和。

f直接求不好求,我们考虑反演得到f。

设g(x,y,z)为1<=i<=x,1<=j<=y的(xy)^z之和。

拆括号可以得到:g(x,y,z)=(∑ i^z)*(∑ j^z)。

g可以用f表示: g(x,y,z)=∑f(x/i,y/i,z)* i^(2*z)。

然后用g反演得f: f(x,y,z)=∑g(x/i,y/i,z) * i^(2*z) * μ(i)

总式子太长了,懒得打上了。。。

总之这个题最后的式子没法用一般的数论dark技巧优化,只能暴力求。。

也就是外层d枚举,d,n/d,m/d 确定了之后内层也是暴力做。。

(所以我也不知道我怎么没有TLE)

(而且感觉我内层的预处理既浪费了运行时间又显得很蠢hhh)

/**************************************************************Problem: 3561User: JYYHHLanguage: C++Result: AcceptedTime:7860 msMemory:11936 kb
****************************************************************/#include<bits/stdc++.h>
#define ll long long
#define ha 1000000007
#define maxn 500005
using namespace std;
ll n,m,k,ans=0,ci[maxn],qz[maxn];
int miu[maxn],t=0,zs[maxn/5];
bool v[maxn];inline ll ksm(ll x,ll y){ll an=1;for(;y;y>>=1,x=x*x%ha) if(y&1) an=an*x%ha;return an;
}inline void init(){miu[1]=1;for(int i=2;i<=500000;i++){if(!v[i]) zs[++t]=i,miu[i]=-1;for(int j=1,u;j<=t&&(u=zs[j]*i)<=500000;j++){v[u]=1;if(!(i%zs[j])) break;miu[u]=-miu[i];}}
//  for(int i=1;i<=500000;i++) miu[i]+=miu[i-1];
}inline ll mul(ll x,ll y){x*=y;if(x>=ha) x-=x/ha*ha;return x;
}inline ll f(ll x,ll y,ll z){
//  printf("round %lld %lld %lld:\n");ll an=0,now,a1,a2;qz[1]=1,ci[1]=1;for(int i=2;i<=z;i++){ci[i]=ksm(i,y);qz[i]=ci[i]*ci[i];if(qz[i]>=ha) qz[i]-=qz[i]/ha*ha;qz[i]*=miu[i];if(qz[i]<0) qz[i]+=ha;ci[i]+=ci[i-1];if(ci[i]>=ha) ci[i]-=ha;qz[i]+=qz[i-1];if(qz[i]>=ha) qz[i]-=ha;}for(int i=1,j;i<=x;i=j+1){a1=x/i,a2=z/i;j=min(x/a1,z/a2);now=qz[j]-qz[i-1]+ha;if(now>=ha) now-=ha;an+=mul(mul(ci[a1],ci[a2]),now);if(an>=ha) an-=ha;}return an;
}int main(){init();scanf("%lld%lld",&n,&m);if(n>m) swap(n,m);for(int i=1;i<=n;i++){ans+=ksm(i,i)*f(n/i,i,m/i);if(ans>=ha) ans-=ans/ha*ha;}printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/JYYHH/p/8305048.html

bzoj 3561: DZY Loves Math VI相关推荐

  1. bzoj 3739 DZY loves math VIII

    3739: DZY loves math VIII Time Limit: 25 Sec Memory Limit: 512 MB Submit: 318 Solved: 50 [Submit][St ...

  2. 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) ...

  3. 2017.10.9 DZY Loves Math VI 失败总结

    一看到love math就知道肯定不会做.. 首先lcm拆成i*j/gcd(i,j),然后就讨论分子和分母..但并没有什么卵用 这个题对比传统反演题,主要不同的是f函数不是很直观.. 所以如果枚举gc ...

  4. BZOJ 3309: DZY Loves Math

    Description 对于正整数 n n,定义f(n)f(n)为 n n所含质因子的最大幂指数.例如f(1960)=f(23∗51∗72)=3f(1960)=f(2^3 * 5^1 * 7^2)=3 ...

  5. bzoj 3512: DZY Loves Math IV【欧拉函数+莫比乌斯函数+杜教筛】

    参考:http://blog.csdn.net/wzf_2000/article/details/54630931 有这样一个显然的结论:当\( |\mu(n)|==1 \)时,\( \phi(nk) ...

  6. DZY Loves Math 系列详细题解

    BZOJ 3309: DZY Loves Math I 题意 \(f(n)\) 为 \(n\) 幂指数的最大值. \[ \sum_{i = 1}^{a} \sum_{j = 1}^{b} f(\gcd ...

  7. DZY Loves Math系列

    link 好久没写数学题了,再这样下去吃枣药丸啊. 找一套应该还比较有意思的数学题来做. [bzoj3309]DZY Loves Math 简单推一下. \[\sum_{i=1}^n\sum_{j=1 ...

  8. 【BZOJ3309】DZY Loves Math

    3309: DZY Loves Math Time Limit: 20 Sec Memory Limit: 512 MB Submit: 411 Solved: 161 [Submit][Status ...

  9. 【BZOJ3512】DZY Loves Math IV(杜教筛)

    [BZOJ3512]DZY Loves Math IV(杜教筛) https://www.cnblogs.com/cjyyb/p/10165338.html

  10. BZOJ3560 DZY Loves Math V

    原题链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3560 DZY Loves Math V Description 给定n个正整数a1,a2 ...

最新文章

  1. PostgreSql、MySql字段值为空时取其他值语句
  2. windows平台下vlc编译之六:vlc-0.9.8a的编译
  3. 企业应用架构模式学习笔记
  4. How to save your Ethereum Dapp users from paying gas for transactions
  5. mysql数据库搜索引擎要先进入_Mysql搜索引擎都有哪些区别
  6. 胡巴小年调皮搞事情?嗨翻五城华为体验店
  7. 归并排序的java语言_归并排序 java语言
  8. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  9. 通俗易懂的通用excel导出
  10. CoLA任务的数据增强方法
  11. 大球吃小球html5,怎么用html5制作简单的大球吃小球的游戏
  12. 传奇私服服务器移动玩家位置,传奇私服服务端里面哪个是玩家数据文件文件
  13. 视频教程-数据分析与数据挖掘导论(R语言)-MySQL
  14. node笔记随笔---kalrry
  15. 基于Android实现的小型在线订餐APP饿了么
  16. Netty + Redis + Websocket IM 分布式集群实现
  17. 使用python批量将svg转换成PNG
  18. 爱玩mc卡在更新java_爱玩mc火爆服务器ip与登陆机制
  19. MotionBERT:Unified Pretraining for Human Motion Analysis中文翻译
  20. thinkphp多城市房产系统源码程序_Thinkphp多城市版房产系统模板源码 php开源房产源码+手机版...

热门文章

  1. CISCO 路由器(1)
  2. ASP.NET生成分页静态页
  3. 正确识别希捷Backup Plus新睿品1TB正品,杜绝奸商猖獗
  4. asp.net获取服务器信息
  5. 我的第一个MFC小项目(4)之 位图转换(续)
  6. Android程序开发初级教程(一)
  7. WordPress国外开源主题Enigma h1、h2、h3……标题不显示的解决办法
  8. C#制作、打包、签名、发布Activex全过程【转】
  9. 远程连接桌面不能全屏显示的解决方法
  10. Windows Phone 8初学者开发—第18部分:在页面间导航