• 「BZOJ4173」数学


    「BZOJ4173」数学

    题目大意

    [varphi(n) cdot varphi(m) cdot sum_{k in S(n,m)} varphi(k)quad mathrm{mod} quad 998244353 ]

    其中 (S(n,m)) 为满足 $ mquad mathrm{mod} quad k + nquad mathrm{mod} quad k ge k$ 的 (k) 的集合。

    我们可以对 $ mquad mathrm{mod} quad k + nquad mathrm{mod} quad k ge k$ 进行化简。

    [m-lfloor frac{m}{k} floor*k + n-lfloor frac{n}{k} floor*k ge k \ m+n ge k(1+lfloor frac{m}{k} floor + lfloor frac{n}{k} floor) \ lfloor frac{m+n}{k} floor -lfloor frac{m}{k} floor - lfloor frac{n}{k} floor= 1\ ]

    即 $ mquad mathrm{mod} quad k + nquad mathrm{mod} quad k ge k iff lfloor frac{m+n}{k} floor -lfloor frac{m}{k} floor - lfloor frac{n}{k} floor= 1$

    (t=sum_{k in S(n,m)} varphi(k))

    [t= sum_{k=1}^{n+m} varphi(k) cdot [ lfloor frac{m+n}{k} floor -lfloor frac{m}{k} floor - lfloor frac{n}{k} floor ] \ =sum_{k=1}^{n+m} varphi(k) cdot lfloor frac{m+n}{k} floor -sum_{k=1}^{m}varphi(k) cdotlfloor frac{m}{k} floor - sum_{k=1}^{n}varphi(k) cdotlfloor frac{n}{k} floor \ ]

    考虑求解 (sum_{k=1}^{Q}varphi(k)cdotlfloor frac{Q}{k} floor)

    则其等于

    [sum_{k=1}^{Q}varphi(k)cdotlfloor frac{Q}{k} floor\ =sum_{k=1}^{Q} sum_{t=1}^{t le lfloor frac{Q}{k} floor} varphi(k)\ =sum_{t=1}^{Q} sum_{k|t} varphi(k)\ =sum_{t=1}^{Q} t ]

    于是有 (ans= varphi(n) cdot varphi(m) cdot n cdot m)

    时间复杂度 (O(sqrt{n}))

    贴代码

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll p=998244353;
    ll eular(ll n){
    	ll ans=n;
    	ll i=2;
    	while(i*i<=n){
    		if(n%i==0){
    			while(n%i==0) n/=i;
    			ans=ans/i*(i-1); 
    		}
    		++i;
    	}
    	if(n!=1) ans=ans/n*(n-1);
    	return ans%p;
    } 
    int main(){
    	ios::sync_with_stdio(0);
    	cin.tie(0),cout.tie(0);
    	ll n,m;
    	cin>>n>>m;
    	cout<<(n%p*(m%p)%p*eular(n)%p*eular(m)%p)%p;
    	return 0;
    }
    
  • 相关阅读:
    好的Qt学习资料
    QT QMap介绍与使用
    Qt缺少调试器
    vs2012+Qt5.3.1环境添加新的ui界面的方法
    QT定时器的使用
    Qt中forward declaration of struct Ui::xxx的解决
    linux-svn命令
    如何编写Windows服务
    为你的爬虫提提速?
    Python爬虫的N种姿势
  • 原文地址:https://www.cnblogs.com/HenryHuang-Never-Settle/p/11688771.html
Copyright © 2020-2023  润新知