zoukankan      html  css  js  c++  java
  • 仪仗队(欧拉函数)

    仪仗队

    来源:
    2008年省队选拔赛山东
    题目描述:
      作为体育委员,C君负责这次运动会仪仗队的训练。仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。
      这里写图片描述
      现在,C君希望你告诉他队伍整齐时能看到的学生人数。
    输入描述:
      共一个数N。
    输出描述:
      共一个数,即C君应看到的学生人数。
    样例输入:
    4
    样例输出:
    9
    数据范围及提示:
    对于30% 的数据,1≤N≤1000
    对于100% 的数据,1≤N≤40000
    思路:
    能被看到的点有一个特点:横、纵坐标互质,所以可以暴力枚举,但是一定会超时+爆内存。所以这里用到了欧拉函数。
    r[i]存储1~i中与i互为质数的数的个数。

    #include<iostream>
    using namespace std;
    const int maxn=40010;
    int n,ans=1,r[maxn];
    int main()
    {
        cin>>n;n--;r[1]=1;
        for(int i=2;i<=n;i++)
        {
            if(!r[i])
            {
                for(int j=i;j<=n;j+=i)
                {
                    if(!r[j])
                    r[j]=j;
                    r[j]=r[j]/i*(i-1);
                }
            }
            ans+=r[i];
        }
        cout<<ans*2+1;
        return 0;
    }
  • 相关阅读:
    Android中库项目、jar包等的使用方法
    rman 使用catalog备份的演示
    好端端的项目重新运行的时候却不行了!!!已解决
    动物:河蚌
    动物:田螺
    动物-鱼:鳖
    动物-鱼:鳝鱼
    动物-鱼:柳根鱼
    动物-鱼:泥鳅
    动物-鱼:刺鳅
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070972.html
Copyright © 2011-2022 走看看