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

代码:

#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. Sql Server专题一:索引(中)

    写在前面的废话: 索引这个知识点,我前前后后不知道看了多少边,网上的文章五花八门,搞的我晕头转向,搞的牛逼点的就是测试索引带来的好处,还搞一大堆的测试数据出来,有意思吗?MS自己不会测试吗?这样的测试 ...

  2. UI经验

    移动端设计原则----大.高.宽---------------->本质上都是以用户体验为判断依据 1.手指触摸方便.精准------------>高度 50px.色块 2.字体大小---- ...

  3. 创建以 API 为中心的 Web 应用

    http://www.oschina.net/translate/creating-an-api-centric-web-application?from=20130818 正计划着要开始搞一个新的网 ...

  4. System.Web.Caching.Cache类 缓存 各种缓存依赖

    原文:System.Web.Caching.Cache类 缓存 各种缓存依赖 Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.C ...

  5. 如何让vnc控制由默认的twm界面改为gnome?(转)

    其实只要修改用户 .vnc目录下的xstartup配置文件即可 [root@localhost ~]# more /root/.vnc/xstartup#!/bin/sh # Uncomment th ...

  6. poj 2393 Yogurt factory(dp+贪心)

    奶牛们建了一家酸奶厂,在N周内每周需要出货Y_i单位酸奶,第i周成本为C_i,储存费为每周S.求总体最低成本. 贪心策略是维持每周的最低单位成本,每周可能用上周剩下的,也可能生产新的.于是该周单位成本 ...

  7. jQuery提交form表单

    <form id="search_form" name="search_form" method="post"> <inp ...

  8. js判断的执行顺序

    js预编译是对每一个<script>标签片段进行的.预编译声明所有var变量(初始为undefined),解析定义式函数语句. 还有个关于 "window作用域下,a = 1和v ...

  9. 使用CSS3 Media Queries实现网页自适应(转)

    当今银屏分辨率从 320px (iPhone)到 2560px (大屏显示器)或者更大.人们也不再仅仅用台式机来浏览网页,现在有手机,平板电脑等等.所以传统的固定宽度设计形式将不再是个最佳选择,网页设 ...

  10. dom处理配置文件_待完善

    import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java ...