• bzoj 2190 [SDOI2008]仪仗队


    2190: [SDOI2008]仪仗队

    Time Limit: 10 Sec  Memory Limit: 259 MB

    Description

      作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。       现在,C君希望你告诉他队伍整齐时能看到的学生人数。

    Input

      共一个数N。

    Output

      共一个数,即C君应看到的学生人数。

    Sample Input

      4

    Sample Output

      9


    HINT

    【数据规模和约定】   对于 100% 的数据,1 ≤ N ≤ 40000

    Source

    Code:

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    using namespace std;
    int n,m,flag[100008],phi[100008],prime[100008],tot,ans;
    
    void init(){
        phi[1]=1;
        for(int i=2;i<=n;i++){
            if(flag[i]==0){
                flag[i]=1;
                tot++;
                prime[tot]=i;
                phi[i]=i-1;
            }
            for(int j=1;j<=tot&&i*prime[j]<=n;j++){
                flag[prime[j]*i]=1;
                if(i%prime[j]==0){
                    phi[i*prime[j]]=phi[i]*prime[j];
                    break;
                }else{
                    phi[i*prime[j]]=phi[i]*(prime[j]-1);
                }
            }
        }
    }
    
    int main(){
        scanf("%d",&n);
        tot=0;
        init();
        ans=0;
        for(int i=2;i<n;i++){
            ans+=phi[i];
        }
        ans=ans*2+3;
        printf("%d
    ",ans);
    }
  • 相关阅读:
    oracle a:=100 和 b=:c 区别
    Oracle为表或字段添加备注
    oracle删除表字段和oracle表增加字段
    oracle数据库的一个表中,怎么设置字段的默认值
    VS2015密钥
    C# 调用WebApi
    OCX ClassId查看
    C++ 调用类的函数
    如何做一个标记为安全的ACTIVEX控件
    Java内存通道
  • 原文地址:https://www.cnblogs.com/WQHui/p/7537834.html
Copyright © 2020-2023  润新知