【bzoj 2190】[SDOI2008]仪仗队 欧拉函数

来源:互联网 发布:linux 混合硬盘 编辑:程序博客网 时间:2024/05/21 08:40

画个图,然后发现没一个点可以被看见的前提就是横坐标和纵坐标互素,ok,套一个欧拉函数就好了

#include<cstdio>#include<cstring>#include<iostream>using namespace std;int n;int phi[40005];void work(){    phi[1]=1;    for(int i=2;i<=n;i++){        if(!phi[i])        for(int j=i;j<=n;j+=i){            if(!phi[j])phi[j]=j;            phi[j]=phi[j]/i*(i-1);        }    }}int main(){    scanf("%d",&n);    work();    long long ans=0;    for(int i=1;i<=n-1;i++)ans+=(long long)phi[i];    printf("%lld",2*ans+1);    return 0;}


0 0
原创粉丝点击