zoukankan      html  css  js  c++  java
  • poj3090 Visible Lattice Points

    被机房oierA穿的一道题……

    我最后还是靠着打表想出来了

    其实就先沿着对角线分开 看一半

    然后发现没有被覆盖的点纵坐标都是横坐标的因数

    所以被覆盖的点就是欧拉函数

    预处理一下前缀和 O(1000)

    Code:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<queue>
     6 #include<vector>
     7 #define ms(a,b) memset(a,b,sizeof a)
     8 #define rep(i,a,n) for(int i = a;i <= n;i++)
     9 #define per(i,n,a) for(int i = n;i >= a;i--)
    10 #define inf 2147483647
    11 using namespace std;
    12 typedef long long ll;
    13 ll read() {
    14     ll as = 0,fu = 1;
    15     char c = getchar();
    16     while(c < '0' || c > '9') {
    17         if(c == '-') fu = -1;
    18         c = getchar();
    19     }
    20     while(c >= '0' && c <= '9') {
    21         as = as * 10 + c - '0';
    22         c = getchar();
    23     }
    24     return as * fu;
    25 }
    26 const int N = 1005;
    27 //head
    28 int c;
    29 int n;
    30 int mindiv[N],prim[N],phi[N];
    31 int sig[N];
    32 void initphi(int n) {
    33     phi[0] = phi[1] = 1;
    34     mindiv[0] = mindiv[1] = 1;
    35     rep(i,2,n) {
    36     if(!mindiv[i]) prim[++prim[0]] = i,phi[i] = i-1;
    37     for(int j = 1;j <= prim[0] && i * prim[j] <= n;j++) {
    38         mindiv[i * prim[j]] = prim[j];
    39         if(i % prim[j] == 0) phi[i * prim[j]] = phi[i] * prim[j];
    40         else phi[i * prim[j]] = phi[i] * (prim[j]-1);
    41     }
    42     }
    43 }
    44 
    45 int main() {
    46     initphi(1001);
    47     rep(i,1,1000) sig[i] = sig[i-1] + phi[i];
    48     int T = read();
    49     rep(i,1,T) {
    50     int n = read();
    51     printf("%d %d %d
    ",i,n,(sig[n]<<1)+1);
    52     }
    53     return 0;
    54 }
    > 别忘了 总有人在等着你
  • 相关阅读:
    excel2007灵活计算2个日期之间的工作日
    bat
    eclipse Maven操作出现No compiler is provided in this environment.Perhaps you are running on a JRE rather than a JDK?
    将BeyondCompare设置为TortoiseSVN的扩展比较工具
    python_Excel_xlwt
    Pyqt5_实例1
    Word使用技巧——持续更新
    python_serial
    Pyqt5_Python运用过程中一些问题和技巧
    Pyqt5_QfileDialog
  • 原文地址:https://www.cnblogs.com/yuyanjiaB/p/9778091.html
Copyright © 2011-2022 走看看