• BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )


    假设C君为(0, 0), 则右上方为(n - 1, n - 1).

    一个点(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 = ∑phi(i) * 2 + 1 ( 1 <= i < n ). +2是因为(1, 0), (0, 1) 两个点, -1是因为(1, 1)重复计算了

    -------------------------------------------------------------------------

    #include<bits/stdc++.h>
     
    using namespace std;
     
    const int maxn = 40009;
     
    int phi[maxn], n;
     
    void phis() {
    for(int i = 1; i < n; i++) phi[i] = i;
    for(int i = 2; i < n; i++) if(phi[i] == i)
       for(int j = i; j < n; j += i)
           phi[j] = phi[j] / i * (i - 1);
    }
     
    int main() {
    int ans = 0;
    cin >> n;
    phis();
    for(int i = 1; i < n; i++) ans += phi[i];
    cout << ans * 2 + 1 << " ";
    return 0;
    }

    ------------------------------------------------------------------------

    2190: [SDOI2008]仪仗队

    Time Limit: 10 Sec  Memory Limit: 259 MB
    Submit: 1716  Solved: 1087
    [Submit][Status][Discuss]

    Description

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

    Input

      共一个数N。

    Output

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

    Sample Input

      4

    Sample Output

      9


    HINT

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

    Source

  • 相关阅读:
    立体图
    旅行家的预算
    洛谷P多米诺骨牌
    洛谷P2331最大子矩阵
    理想的正方形
    2015 ACM/ICPC Asia Regional Hefei Online Find a path
    Atcoder abc 138 F
    Atcoder abc 138 E String of Impurity
    zlb的8.19考试
    Atcoder abc 138
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/4677216.html
Copyright © 2020-2023  润新知