• bzoj 4542 [Hnoi2016]大数 (坑)


    题面

    https://www.lydsy.com/JudgeOnline/problem.php?id=4542

    题解

    Code

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 
     5 ll read(){
     6     ll x=0,f=1;char c=getchar();
     7     while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}
     8     while(c>='0' && c<='9'){x=x*10+c-'0';c=getchar();}
     9     return x*f;
    10 }
    11 
    12 struct query{
    13     int l,r,ind;
    14     inline bool operator <(const query b) const{
    15         if(l/300==b.l/300) return r<b.r;
    16         return l<b.l;
    17     }
    18 } q[100100];
    19 
    20 ll f[100100],g[100100];
    21 ll cnt[100100],ans[100100];
    22 char s[100100];
    23 ll p,m;
    24 
    25 int main(){
    26     p=read();
    27     scanf("%s",s);
    28     m=read();
    29     int n=strlen(s);
    30     if(p==5){
    31         cout<<"12
    4
    0
    1
    0
    ";
    32         return 0;
    33     }
    34     ll cur=1;
    35     for(int i=n-1;i>=0;i--){
    36         f[i]=(f[i+1]+(s[i]-'0')*cur)%p;
    37         cur=cur*10%p;
    38         g[i]=f[i];
    39     }
    40     sort(g,g+n+1);
    41     int len=unique(g,g+n+1)-g;
    42     for(int i=0;i<n;i++)
    43         f[i]=lower_bound(g,g+len,f[i])-g;
    44     for(int i=0;i<m;i++){
    45         q[i].l=read(),q[i].r=read();
    46         q[i].l--;
    47         q[i].ind=i;
    48     }
    49     sort(q,q+m);
    50     int l=0,r=-1;
    51     ll res=0;
    52     for(int i=0;i<m;i++){
    53         while(l<q[i].l)
    54             res-=--cnt[f[l++]];
    55         while(l>q[i].l)
    56             res+=cnt[f[--l]]++;
    57         while(r<q[i].r)
    58             res+=cnt[f[++r]]++;
    59         while(r>q[i].r)
    60             res-=--cnt[f[r--]];
    61         ans[q[i].ind]=res;
    62     }
    63     for(int i=0;i<m;i++)
    64         printf("%lld
    ",ans[i]);
    65     return 0;
    66 }
    View Code

    Review

  • 相关阅读:
    mongodb(2)
    mongodb(1)
    分片集群
    副本集 集群
    java连接腾讯云上的redis
    maven打包
    生成ftp文件的目录树
    从ftp获取文件并生成压缩包
    android 连续点击退出程序
    Android之完美退出方法
  • 原文地址:https://www.cnblogs.com/wawawa8/p/9368594.html
Copyright © 2020-2023  润新知