zoukankan      html  css  js  c++  java
  • 分块

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 
     5 using namespace std;
     6 const int N=1000;
     7 
     8 int a[N];
     9 int sum[N];
    10 int belong[N];
    11 int size[N]
    12 int add[N];
    13 
    14 
    15 int K_ask(int l,int r)
    16 {
    17     int ans=0;
    18     if(belong[l]==belong[r])ans-=sum[belong[l]];
    19     while(belong[l]==belong[l-1])
    20     {
    21         ans+=a[l]+add[belong[l]];
    22         l++;
    23     }
    24     while(belong[r]==belong[r+1])
    25     {
    26         ans+=a[r]+add[belong[r]];
    27         r--;
    28     }
    29     for(int i=belong[l]+1;i<belong[r];i++)
    30     {
    31         ans+=sum[i];
    32     }
    33     return sum[i];
    34 }
    35 
    36 void K_mo(int l,int r,int v)
    37 {
    38     if(belong[l]==belong[r])
    39     {
    40         for(int i=l;i<=r;i++)
    41         {
    42             a[i]+=v;
    43         }
    44         return ;
    45     }
    46     while(belong[l]==belong[l-1])
    47     {
    48         a[l]+=v;
    49         l++;
    50     }
    51     while(belong[r]==belong[r+1])
    52     {
    53         a[r]+=v;
    54         r--;
    55     }
    56     for(int i=belong[l]+1;i<belong[r];i++)
    57     {
    58         add[i]+=v;
    59         sum[i]+=size[i]*v;
    60     }
    61 }
    62 
    63 int main()
    64 {
    65     int n;
    66     cin>>n;
    67     int s=sqrt(n);
    68     for(int i=1;i<=n;i++)
    69     {
    70         cin>>a[i]; 
    71     }
    72     for(int i=1;i<=n;i++)
    73     {
    74         belong[i]=(i-1)/s+1;
    75     }
    76     int cnt=belong[n];
    77     for(int i=1;i<s;i++)
    78     {
    79         sum[i]=0;add[i]=0;
    80         size[i]=s;
    81     }
    82     if(!n%s)size[cnt]=s;
    83     else size[cnt]=n%s;
    84     
    85     for(int i=1;i<=n;i++)
    86     {
    87         sum[belong[i]]+=a[i];
    88     }
    89     
    90     //...
    91     K_ask(l,r);
    92     K_mo(l,r,v);
    93 } 
  • 相关阅读:
    随便发泄几句
    四年有感
    测试产品杂谈
    质量管理杂谈
    提升
    下半年工作方向
    测试资源分配
    2013思路
    微博吐槽汇总
    招聘
  • 原文地址:https://www.cnblogs.com/lyqlyq/p/6878765.html
Copyright © 2011-2022 走看看