2020江西ICPC省赛 A.Simple Math Problem(莫比乌斯反演)

A Simple Math Problem

https://ac.nowcoder.com/acm/contest/8827/A

题目链接



在这里插入图片描述








#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll F[N];
int mu[N];
int Log(int n){
    int ans=0;
    while(n)ans+=n%10,n/=10;
    return ans;
}
void pre(){
    mu[1]=1;
    for(int i=1;i<N;i++){
        F[i]=Log(i);
        if (mu[i]){
            for(int j=2*i;j<N;j+=i){
                mu[j]-=mu[i];
            }
        }
    }
}
int main(){
    pre();
    int n;scanf("%d",&n);
    ll ans=0;
    for(int d=1;d<=n;d++){
        if(mu[d]){
            ll m=n/d,s=0;
            for(int i=d;i<=n;i+=d){
                s+=1LL*F[i]*m;
                m--;
            }
            ans+=s*mu[d];
        }
    }
    printf("%lld\n",ans);
}

全部评论
ml大佬 强 😁
点赞 回复 分享
发布于 2020-11-20 11:19
qp大佬太强了!
点赞 回复 分享
发布于 2020-11-20 11:01

相关推荐

06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
06-27 12:30
延安大学 C++
实习+外包,这两个公司底层融为一体了,如何评价呢?
一表renzha:之前面了一家外包的大模型,基本上都能答出来,那面试官感觉还没我懂,然后把我挂了,我都还没嫌弃他是外包,他把我挂了……
第一份工作能做外包吗?
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务