赤裸裸的线段树,借个模板,改写一下即可。

代码:

#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<cstring>
using namespace std;
struct line{
int left,right,n;
int mid(){return (left+right)/2;}
}a[50010<<2];
unsigned short num[50010];
void build(int l,int r,int step)
{
a[step].left=l;
a[step].right=r;
if(l==r)
{
a[step].n=num[l];
return;
}
int mid=a[step].mid();
build(l,mid,step*2);
build(mid+1,r,step*2+1);
a[step].n=a[step*2].n+a[step*2+1].n;
}
int query(int l,int r,int step)
{
if(a[step].left==l&&a[step].right==r)
return a[step].n;
int mid=a[step].mid();
if(mid>=r)
return query(l,r,step*2);
else if(mid<l)
return query(l,r,step*2+1);
else
return query(l,mid,step*2)+query(mid+1,r,step*2+1);
}
void Add(int l,int r,int step,int x,int y)
{
if(a[step].left==a[step].right&&a[step].right==x)
{
a[step].n+=y;
return ;
}
int mid=a[step].mid();
if(x>mid)
Add(mid,r,step*2+1,x,y);
else
Add(l,mid,step*2,x,y);
a[step].n=a[step*2].n+a[step*2+1].n;
}
void Sub(int l,int r,int step,int x,int y)
{
if(a[step].left==a[step].right&&a[step].right==x)
{
a[step].n-=y;
return ;
}
int mid=a[step].mid();
if(x>mid)
Sub(mid,r,step*2+1,x,y);
else
Sub(l,mid,step*2,x,y);
a[step].n=a[step*2].n+a[step*2+1].n;
}
int main()
{
int t,n;
scanf("%d",&t);
for(int tcase=1;tcase<=t;tcase++)
{
printf("Case %d:\n",tcase);
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&num[i]);
build(1,n,1);
char in[6];
int x,y;
while(scanf("%s",&in)&&strcmp(in,"End")!=0)//字符数组匹配,弄得我好惨
{
scanf("%d%d",&x,&y);
if(strcmp(in,"Query")==0)
printf("%d\n",query(x,y,1));
else if(strcmp(in,"Sub")==0)
Sub(1,n,1,x,y);
else if(strcmp(in,"Add")==0)
Add(1,n,1,x,y);
}
}
return 0;
}

HDOJ1166 敌兵布阵的更多相关文章

  1. 敌兵布阵 HDOJ--1166

    敌兵布阵 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  2. HDU 1166 敌兵布阵 (树状数组)

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    ...

  3. HDU 1166 敌兵布阵(分块)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. HDU 1166 敌兵布阵(线段树单点更新)

    敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...

  5. hdu acm 1166 敌兵布阵 (线段树)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. HDU 1166 敌兵布阵

    B - 敌兵布阵 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  7. HDU 1166 敌兵布阵(线段树模板题)

    题目链接: 传送门 敌兵布阵 Time Limit: 2000MS     Memory Limit: 32768 K Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头 ...

  8. ACM: 敌兵布阵 解题报告 -线段树

    敌兵布阵 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Li ...

  9. hdu 敌兵布阵(线段树之单点更新)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

随机推荐

  1. 在Azure Cloud Service中部署Java Web App(2)

    接上文. 9.在进行发布之前,需要对我们的订阅做一些设置,因为默认情况下,Azure的service end指向的是Azure global的站点,如果我们要将服务发布在Azure的中国站点,需要做下 ...

  2. Android 控件属性

    TextView 文字属性//文字左右居中android:layout_centerHorizontal="true"//文字垂直居中android:layout_centerVe ...

  3. Matlab 仿真实现TI Instaspin 的Foc 逆Clarke变换和SVPWM

    一直没搞明白TI 的Instaspin的SVPWM实现原理,最后只能在Matlab里仿真看看输出波形是不是和普通的SVPWM实现输出的波形一样,用M文件实现,下面是代码: clear all; the ...

  4. PM产品经理练级攻略(1-5等级)

    大家都叫“PM”,但做的事情却完全不同? “PM”这个词到底是什么意思? 这个话题恐怕也是各位同行都一直在想,也一直想不清楚的吧,我也是. 每次看到各种“产品经理的能力模型”,我都觉得有点扯淡,总觉得 ...

  5. MEMS微加工技术

    MEMS的微加工有两种方法,一种是多层平面加工技术,还有一种是基于SOI的体加工技术. (一)多层平面加工技术 这种方法加工出来的结构有三层:作为主体的多晶硅层.作为暂时填充物的氧化物牺牲层以及多晶硅 ...

  6. python编辑器对比和推荐

    python编辑器对比和推荐   我先给一个初步的表格吧,大家如果有什么意见,或有补充,欢迎提出.有些我没有用过,先不写了.以下是我使用过的python IDE: 除了PythonWin, Visua ...

  7. cf459E Pashmak and Graph

    E. Pashmak and Graph time limit per test 1 second memory limit per test 256 megabytes input standard ...

  8. Serv-U无法连接到服务器127.0.0.1,端口43958 FTP服务器不能启动

    端口43958,这是Serv-U的本地管理端口,只允许127.0.0.1连接.    在出现“Serv-U无法连接到服务器127.0.0.1,端口43958”这个错误的时候,一般ftp软件无法自动启动 ...

  9. PDF转word文档

    本文未对扫描版的PDF实验,但是可编辑PDF版本可以转换为word而且转换后的word是可编辑的. 1.从http://xiazai.zol.com.cn/detail/33/326858.shtml ...

  10. API经济产业

    技术大咖为我们铺好了前进道路,我们为什么还要敬而远之舍近索远呢?充分利用开源,利用API进行App有效整合. 为应用添加日志功能,Loggly; 为应用添加用户管理和身份认证模块,Stormpath; ...