zoukankan      html  css  js  c++  java
  • 带输入值的莫反解法

    8.16杭二的莫反题没有推出来

    (sum_{i=1}^nsum_{j=1}^nlcm(a_i,a_j))

    解法:同机房奆佬非出题人解法 不过吊打出题人

    [egin{align} &sum_{i=1}^nsum_{j=1}^nlcm(a_i,a_j)\ &=sum_{i=1}^nsum_{j=1}^nfrac{a_i imes a_j}{gcd(a_i,a_j)}\ &=sum_{d=1}sum_{i=1}^nsum_{j=1}^nfrac{a_i imes a_j}{d}[d=gcd(a_i,a_j)]\ &=sum_{d=1}sum_{d|a_i}sum_{d|a_j}frac{a_i imes a_j}{d}[1=gcd(frac{a_i}{d},frac{a_j}{d})]\ &=sum_{d=1}sum_{d|a_i}sum_{d|a_j}frac{a_i imes a_j}{d}sum_{k=1}mu(k)[k|gcd(frac{a_i}{d},frac{a_j}{d})]\ &=sum_{d=1}sum_{k=1}mu(k)sum_{dk|a_i}sum_{dk|a_j}frac{a_i imes a_j}{d}\ &=sum_{T=1}sum_{k|T}mu(k)sum_{T|a_i}sum_{T|a_j}kfrac{a_i imes a_j}{T}\ &=sum_{T=1}^{max{a_i}}sum_{k|T}k imes mu(k)sum_{T|a_i}sum_{T|a_j}frac{a_i imes a_j}{T}\ end{align} ]

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<map>
    #define rep(i,a,b) for(int i=(a);i<=(b);++i)
    #define dwn(i,a,b) for(int i=(a);i>=(b);--i)
    using namespace std;
    typedef long long ll;
    const int mod=998244353;
    int n,maxn,cnt,prime[100010],ton[1000010];
    ll ans=0,F[1000010],G[1000010],inv[1000010];
    bool v[1000010];
    void init(int n)
    {
    	F[1]=1;
    	rep(i,2,n)
    	{
    		if(!v[i])
    		{
    			prime[++cnt]=i;
    			F[i]=1-i;
    		}
    		for(int j=1;j<=cnt&&prime[j]*i<=n;++j)
    		{
    			v[prime[j]*i]=1;
    			if(i%prime[j]==0)
    			{
    				F[prime[j]*i]=F[i];
    				break;
    			}
    			F[prime[j]*i]=F[i]*(1-prime[j])%mod;
    		}
    	}
    	rep(i,1,n)
    	{
    		for(int j=i;j<=n;j+=i)
    		{
    			G[i]=(G[i]+ll(j)*ton[j])%mod;
    		}
    		G[i]=G[i]*G[i]%mod;
    	}
    	inv[1]=1;
    	rep(i,2,n)
    	{
    		inv[i]=(mod-mod/i)*inv[mod%i]%mod;
    	}
    }
    int main()
    {
    	scanf("%d",&n);
    	rep(i,1,n)
    	{
    		int t;
    		scanf("%d",&t);
    		ton[t]++,maxn=max(maxn,t);
    	}
    	init(maxn);
    	rep(i,1,maxn)
    	{
    		ans=(ans+G[i]*inv[i]%mod*F[i]%mod)%mod;
    	}
    	printf("%lld
    ",(ans+mod)%mod);
    	return 0;
    }
    
  • 相关阅读:
    HTML5程序设计web workers API 学习笔记
    HTML5 拖拽API 学习笔记
    2013.03.23这天的一点感触和计划
    localStorage实现返回到原位置以及pjax的反思
    HTML5 localStorage浅谈
    javascript学习之函数对象简介
    display:-webkit-box
    由登录表单的用户体验细节说开
    前端和用户体验
    Laravel实践step1,一个简单的crud
  • 原文地址:https://www.cnblogs.com/MYsBlogs/p/11364497.html
Copyright © 2011-2022 走看看