随笔 - 58,  文章 - 0,  评论 - 4,  阅读 - 3296

一、题目描述:

  给定 a1,a2,,aN,求

  i=1Nj=1Nlcm(ai,aj)的值。

  数据范围:1n,ai5×104


 二、解题思路:

  这个题绝对有必要写一篇题解。

  首先就是题目中的式子的转化。

  一个式子如果含有未知的要进行函数操作的数,便是难以化简的。

  发现题目保证了 ai5×104 看了题解,于是可以记录数字的出现次数。

  于是转化为求 i=1nj=1nlcm(i,j)×ci×cj

  好,开始愉快地推式子吧!

  i=1nj=1nlcm(i,j)×ci×cj=

  i=1nj=1ni×j×ci×cjgcd(i,j)=

  d=1ni=1nj=1n[gcd(i,j)=d]i×j×ci×cjd=

  d=1ni=1ndj=1nd[gcd(i,j)=1]i×j×cid×cjd×d

  f(x,d)=i=1xj=1x[gcd(i,j)=1]i×j×cid×cjd

  d=1nd×f(nd,d)

  f(nd,d)=i=1ndj=1nd[gcd(i,j)=1]i×j×cid×cjd=

  i=1ndj=1ndkgcd(i,j)μ(k)×i×j×cid×cjd=

  k=1ndμ(k)×k2×i=1ndkj=1ndki×j×cidk×cjdk

  g(x,m)=i=1xj=1xi×j×cim×cjm

  f(nd,d)=k=1ng(ndk,d×k)×μ(k)×k2

  g(ndk,d×k)=i=1ndkj=1ndki×j×cidk×cjdk=

  (i=1ndki×cidk)×(j=1ndkj×cjdk)

  =d=1nk=1ndi=1ndkj=1ndkd×i×j×cidk×cjdk×μ(k)×k2

  T=d×k

  =T=1nT×i=1nTj=1nTi×j×ciT×cjT×kTμ(k)×k=

  T=1nT×(i=1nTi×ciT)2×kTμ(k)×k

  推个式子给我人推麻了qwq

  现在可以做了,时间复杂度 O(nIn n)


 三、完整代码:

复制代码
 1 #include<iostream>
 2 #define N 50010
 3 #define lim 50000
 4 #define ll long long
 5 using namespace std;
 6 int n,cnt;
 7 ll ans,g[N],c[N];
 8 int p[N],f[N],mu[N],vis[N];
 9 void pre_work()
10 {
11     mu[1]=1;
12     for(int i=2;i<=lim;i++)
13     {
14         if(!vis[i]) p[++cnt]=i,mu[i]=-1;
15         for(int j=1;j<=cnt&&p[j]*i<=lim;j++)
16         {
17             vis[i*p[j]]=1;
18             if(i%p[j]==0) break;
19             mu[i*p[j]]=-mu[i];
20         }
21     }
22     for(int i=1;i<=lim;i++)
23         f[i]=mu[i]*i;
24     for(int i=1;i<=lim;i++)
25         for(int j=i;j<=lim;j+=i)
26             g[j]+=f[i];
27 }
28 ll s(int m,int d)
29 {
30     ll res=0;
31     for(int i=1;i<=m;i++)
32         res+=i*c[i*d];
33     return res*res;
34 }
35 int main()
36 {
37     cin>>n;pre_work();
38     for(int i=1,x;i<=n;i++)
39         cin>>x,c[x]++;
40     for(int i=1;i<=lim;i++)
41         ans+=g[i]*i*s(lim/i,i);
42     cout<<ans<<'\n';
43     return 0;
44 }
复制代码

四、写题心得:

  气死,推的式子比代码还长呜呜呜。收获经验如下:

  1=>Exp++!

  2=>Exp++!

posted on   trh0630  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示