zoukankan      html  css  js  c++  java
  • 仪仗队(codevs 2296)

    题目描述 Description

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

      现在,C君希望你告诉他队伍整齐时能看到的学生人数。

    输入描述 Input Description

      共一个数N。

    输出描述 Output Description

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

    样例输入 Sample Input

    4

    样例输出 Sample Output

    9

    数据范围及提示 Data Size & Hint

    对于 30% 的数据,1≤N≤1000

    对于 100% 的数据,1≤N≤40000

    /*
      对于一个例子,如果我们把符合要求的点找出来,会发现所有点的x-1与y-1互质,且图是对称的,那么我们就可以循环1~n-1,找出小于它们并与它们互质的数,统计个数*2+1,典型的欧拉函数题目。 
    */
    #include<cstdio>
    #include<iostream>
    #define M 40010
    using namespace std;
    int phi[M],n;
    void oula()
    {
        for(int i=1;i<=n;i++)
          phi[i]=i;
        for(int i=2;i<=n;i++)
          if(phi[i]==i)
            for(int j=1;j<=n/i;j++)
              phi[i*j]=phi[i*j]/i*(i-1);
    }
    int main()
    {
        scanf("%d",&n);
        oula();
        int ans=0;
        for(int i=1;i<n;i++)
          ans+=phi[i];
        printf("%d",ans*2+1);
        return 0;
    } 
    View Code
  • 相关阅读:
    截取文件路径组成新文件路径
    jsoup选择器
    正则小示例
    一个没有经过优化的过滤指定目录下的指定扩展名文件的算法
    正则表达式生成问题
    链接中带换行的页面查找替换问题
    数组扩容测试
    LeetCode 3.无重复字符的最长子串
    LeetCode 200.岛屿数量
    LeetCode 560.和为K的子数组
  • 原文地址:https://www.cnblogs.com/harden/p/5807206.html
Copyright © 2011-2022 走看看