zoukankan      html  css  js  c++  java
  • HOJ 1867

    树状数组+素数打表

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <string.h>
     4 #include <algorithm>
     5 #include <cmath>
     6 using namespace std;
     7 const int maxn=10000100;
     8 const int maxm=1000010;
     9 int c[maxm],now[maxm],k,n,m;
    10 bool phi[maxn];
    11 void getphi(){
    12     memset(phi,1,sizeof(phi));
    13     int q=(int)sqrt(maxn)+1;
    14     phi[0]=phi[1]=0;
    15     for(int i=2;i<=q;i++){
    16         if(phi[i]){
    17             for(int j=i*2;j<maxn;j+=i)
    18                 phi[j]=0;
    19         }
    20     }
    21 }
    22 int lowbit(int x){return x&(-x);}
    23 int sum(int b){
    24     int sum=0;
    25     while(b>0){
    26         sum+=c[b];
    27         b-=lowbit(b);
    28     }
    29     return sum;
    30 }
    31 void add(int x,int val){
    32     while(x<=k){
    33         c[x]+=val;
    34         x+=lowbit(x);
    35     }
    36 }
    37 int main(){
    38     int a,x,y,game=0;
    39     getphi();
    40     while(scanf("%d%d%d",&k,&n,&m)!=EOF){
    41         if(k==0&&n==0&&m==0)break;
    42         memset(c,0,sizeof(c));
    43         for(int i=1;i<=k;i++){
    44             now[i]=m;
    45             if(phi[m])add(i,1);
    46         }
    47         printf("CASE #%d:
    ",++game);
    48         for(int i=0;i<n;i++){
    49             scanf("%d%d%d",&a,&x,&y);
    50             switch (a){
    51                 case 0:{
    52                     bool b=phi[now[x]],c=phi[now[x]+y];
    53                     if(b&&!c)add(x,-1);
    54                     if(!b&&c)add(x,1);
    55                     now[x]+=y;
    56                     break;
    57                 }
    58                 case 1:{
    59                     printf("%d
    ",sum(y)-sum(x-1));
    60                 }
    61             }
    62         }
    63         printf("
    ");
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    数据结构进阶——线段树
    基本数据结构—Hash哈希
    NOIP2013提高组 day2 2019.7.15
    基本算法——归并排序
    基本数据结构—Trie
    NOIP 2011 提高组 Day2 校模拟 7.11
    Noip2014提高组真题Day1,2 校模拟7.7
    NOIP2015 提高组 day1 7.8校模拟
    NOIP2008 提高组 6.9校模拟
    STL-#include<set>
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/3897095.html
Copyright © 2011-2022 走看看