zoukankan      html  css  js  c++  java
  • [SDOI2008]仪仗队

    题目描述

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

    输入输出格式

    输入格式:

     

    共一个数N

     

    输出格式:

     

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

     

    输入输出样例

    输入样例#1: 
    4
    输出样例#1: 
    9

    说明

    【数据规模和约定】

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

    这道题其实挺水的,就是求一下互质的点的个数。n开到40000,所以n方肯定不行,现行算一下互质的个数就可以了。

    代码如下:

     1 #include<cstdio>
     2 #include<cmath>
     3 #include<algorithm>
     4 using namespace std;
     5 typedef long long ll;
     6 ll read() {
     7     ll a = 0,b = 1;
     8     char c = getchar();
     9     while(c < '0' or c > '9') {
    10         if(c == '-') b = -1;
    11         c = getchar();
    12     }
    13     while(c >= '0' and c <= '9') {
    14         a = a * 10 + c - '0';
    15         c = getchar();
    16     }
    17     return a * b;
    18 }
    19 ll n,ans = 0,e[40010];
    20 ll gcd(ll a,ll b) {
    21     if(b > a) swap(a,b);
    22     if(b == 0) return a;
    23     return gcd(b,a % b);
    24 }
    25 int main() {
    26     n = read();
    27     ans = 2;
    28     if(n==1) {
    29         printf("0");
    30         return 0;
    31     }
    32     for(int i=1; i<=n; ++i)e[i]=i;
    33     for(int i=2; i<=n; ++i) {
    34         if(e[i]==i) {
    35             for(int j=i; j<=n; j+=i) {
    36                 e[j]=e[j]/i*(i-1);
    37             }
    38         }
    39     }
    40     --n;
    41     for(int i=2; i<=n; ++i) {
    42         ans+=e[i]*2;
    43     }
    44     printf("%lld",ans+1);
    45     return 0;
    46 }
  • 相关阅读:
    ThinkPhp3.2.3缓存漏洞复现以及修复建议
    thinkphp3.2.3 缓存导致getshell终极解决办法
    phpstudy后门漏洞复现php5.2
    phpStudy后门漏洞利用复现
    SQL语句利用日志写shell拿权限
    针对phpstudy默认设置的利用
    黑暗世界的搜索引擎
    CVE-2019-0708—微软RDP远程桌面代码执行漏洞复现
    记一次渗透某XX站
    通过USB 2.0电缆手动设置内核模式调试
  • 原文地址:https://www.cnblogs.com/qmcp/p/9837968.html
Copyright © 2011-2022 走看看