http://acm.hdu.edu.cn/showproblem.php?pid=1166

直接线段树模板
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; struct node
{
int l; //左起点
int r; //右终点
int sum; //区间数据总和
}; node p[200004];
int a[50001];
int n; void biuld(int k, int l, int r) //创建
{
int mid;
p[k].l = l;
p[k].r = r;
if(l == r)
{
p[k].sum = a[l];
return ;
}
mid = (l+r)/2;
biuld(k*2,l,mid);
biuld(k*2+1,mid+1,r);
p[k].sum = p[k*2].sum+p[k*2+1].sum;
return ;
} int find(int k, int l, int r) //查找区间的值
{
int mid;
if(p[k].l==l && p[k].r==r) //找到这个区间
{
return p[k].sum;
}
mid = (p[k].l+p[k].r)/2;
if(l>mid) //在中点的右孩子
{
return find(k*2+1,l,r);
}
if(r<=mid) //在中点得左孩子
{
return find(k*2,l,r);
}
return find(k*2,l,mid) + find(k*2+1,mid+1,r);
} void update(int k, int x, int y) //更新数据
{
int mid;
if(p[k].l==x && p[k].r==x) //如果找到这个点
{
p[k].sum = y; //更新数据
return ;
}
mid = (p[k].l+p[k].r)/2;
if(x<=mid)
{
update(k*2,x,y);
}
else
{
update(k*2+1,x,y);
}
p[k].sum=p[k*2].sum+p[k*2+1].sum;
return ;
} int main()
{
int t,i,k,x,y,m;
char cz[7];
scanf("%d",&t);
k = 0;
while(t--)
{
k++;
scanf("%d",&n);
for(i = 1; i <= n; i++)
{
scanf("%d",&a[i]);
}
biuld(1,1,n);
printf("Case %d:\n",k);
while(1)
{
scanf("%s",&cz);
if(cz[0]=='E')
{
break;
}
scanf("%d%d",&x,&y);
switch(cz[0])
{
case 'Q':
{
printf("%d\n",find(1,x,y));
break;
}
case 'A':
{
a[x]+=y;
m = a[x];
update(1,x,m);
break;
}
case 'S':
{
a[x]-=y;
m = a[x];
update(1,x,m);
}
}
}
} return 0;
}

hdu 1166 敌兵布阵(线段树,树状数组)的更多相关文章

  1. HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)

    HDU.1166 敌兵布阵 (线段树 单点更新 区间查询) 题意分析 加深理解,重写一遍 代码总览 #include <bits/stdc++.h> #define nmax 100000 ...

  2. hdu 1166 敌兵布阵 线段树 点更新

    // hdu 1166 敌兵布阵 线段树 点更新 // // 这道题裸的线段树的点更新,直接写就能够了 // // 一直以来想要进线段树的坑,结果一直没有跳进去,今天算是跳进去吧, // 尽管十分简单 ...

  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 1754 线段树 单点跟新 HDU 1166 敌兵布阵 线段树 区间求和

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. HDU 1166 敌兵布阵 <线段树 单点修改 区间查询>

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

  7. hdu 1166 敌兵布阵 (线段树、单点更新)

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

  8. hdu 1166 敌兵布阵 线段树区间修改、查询、单点修改 板子题

    题目链接:敌兵布阵 题目: C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视 ...

  9. HDU 1166 敌兵布阵 线段树

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

  10. HDU 1166 - 敌兵布阵 - [线段树][树状数组]

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

随机推荐

  1. 在Visual Studio中使用FFTW库

    FFTW不用做过多介绍,一般都是在linux下使用,包括放出windows版的作者也自己声明:we don't use Windows ourselves 但是由于要和MIC混合编程,想先在本地使用, ...

  2. Java 操作mongodb

    package cn.test.db; import java.io.File; import java.io.IOException; import java.net.UnknownHostExce ...

  3. 高质量程序设计指南C/C++语言——C++/C编译预处理

    C++/C的编译预处理器对预编译伪指令进行处理后生成中间文件作为编译器的输入,因此所有的预编译伪指令都不会进入编译阶段.预编译伪指令一般都以#打头,且其前面只能出现空白字符.预编译伪指令不是C++/C ...

  4. 删除缓存内容----unrecognized selector sent to instance

    这条错误主要还得看unrecognized前面,,我的时[NSNumber-length...]其实是变量类型错误.. 无法识别选择器发送实例,,本来意思就是你的controllerview找不到视图 ...

  5. learn C on the mac 读后笔记

    phper 学习c的一点笔记.参考资料 learn C on the mac 图书地址--http://pan.baidu.com/s/1eQBW2hO 源码地址--http://pan.baidu. ...

  6. django cbv

    django 提供了一系列现成的类视图,他们都继承自一个 View 基类(django.views.generic.base.View).在这个基类里实现了与 URLs 的接口(as_view).请求 ...

  7. Python开源异步并发框架

    Python开源异步并发框架的未来 2014年3月30日,由全球最大的中文IT社区CSDN主办的“开源技术大会·” (Open Source Technology Conference ,简称OSTC ...

  8. VC++非MFC项目中如何使用TRACE宏

    记得原来尝试学MFC的时候觉得有一个TRACE可以在Debug时向VS的调试输出窗口输出字串符,用来调试时跟踪变量很方便. 然则如果不是MFC项目或者ATL的项目的话是不能使用这个宏的.这时有一个没有 ...

  9. 1297 - Largest Box(三分)

    1297 - Largest Box   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB In t ...

  10. Tomcat日志catalina.out文件过大的处理方法

    原文地址:http://lcbk.net/tomcat/1396.html 我们知道一般企业使用Tomcat 作为Web端时,它产生的日志会越来越大,特别是catalina.out这个日志文件,然而有 ...