前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区间更新与点值

区间更新与点值

作者头像
用户2965768
发布2018-08-30 15:40:17
5450
发布2018-08-30 15:40:17
举报
文章被收录于专栏:wym
代码语言:javascript
复制
#include<bits/stdc++.h>
 using namespace std;
 const int MAXN=100005;
 int n;
 int bit[MAXN];
 int c[MAXN],b[MAXN];
 int lowbit(int x) {
     return x & (-x);
 }
void updata(int k,int v){//更新区间
     while(k>0){
         bit[k]+=v;
         k-=lowbit(k);
     } 
 }

 int query(int k){//求一个点的值
     int sum=0;
     while(k<=n){
         sum+=bit[k];
         k+=lowbit(k);
     }
     return sum;
 }
char op[10];
 int main() {
     int t;
     scanf("%d %d",&n,&t);
 
      for(int i=1;i<=n;i++)
      bit[i]=0,scanf("%d",&b[i]);
 
     while (t--) {
        int l, r;
      getchar();
        scanf("%s",op);
        scanf("%d %d",&l,&r);
         if(op[0]=='a') {
             updata(r, 1); 
             updata(l - 1, -1);
 
         }else{
             long long aa=0;
             for(int i=l;i<=r;i++)
               aa+=query(i)/b[i];
                 printf("%lld\n",aa);
         }
 
     }
     return 0;
 }
 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年07月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档