树状数组
View Code

#include<stdio.h>

#include<string.h>

#define lowbit( x ) ( x )&( -x )

int tree[50024],num,n;

void plus( int num,int x )

{

while( x <= n )

     {

            tree[x] += num;

            x += lowbit( x );

            }

 }

int sum( int x )

{

int sum = 0;

while( x )

    {

           sum += tree[x];

           x -= lowbit( x );

           }

return sum;

}

int main( )

{

int t;

char str[100];

    scanf( "%d",&t );

int k = t;

while( k-- )

    {

           memset( tree,0,sizeof( tree ) );

           scanf( "%d",&n );

for( int i = 1; i <= n; ++i )

           {

                scanf( "%d",&num );

                plus( num,i ); //第i个增加了NUM人

            }

int r = 1;

while( scanf( "%s",str ),str[0] != 'E' )

            {

int a,b;

                   scanf( "%d%d",&a,&b );

switch( str[0] )

                   {

case 'A':

                                plus( b,a );

break;

case 'S':

                                plus( -b,a );

break;

case 'Q':

if( r )

                                    printf( "Case %d:\n",t - k );

                                r = 0;

                                printf("%d\n",sum( b ) - sum( a - 1 ));

break;

                           }

                   }

           }

return 0;

}

转载于:https://www.cnblogs.com/zuckerTT/archive/2011/09/24/2189804.html

【ds】HDU_1166相关推荐

  1. 【DS】3.顺序表链表万字全总结!

    文章目录 一.关于List 为什么要提List 什么是List List怎么用 二.关于线性表 三.关于顺序表 什么是顺序表 顺序表我们常用的功能: ArrayList的简化模拟实现: 四.Array ...

  2. 【DS】9.快速排序大总结!!!

    基本思想 ①首先设定一个分界值,我们把它叫做基准值,根据基准值将数组元素分为左右两部分. ②将大于等于基准的值全部移动到数组右边,将小于基准的值移动到数组左边.完成此操作后,左边的数据全部小于基准,右 ...

  3. 【DS】排序算法之归并排序(Merge Sort)

    一.算法思想 归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法的一个非常典型的应用,指的是将两个已经排序的序列合并成一个序列的操作.其归并思想如下: 1)申请空间,使其大小为两个已经 ...

  4. 【DS】时间复杂度排序

    O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

  5. 【DS】线段树HDU-1166

    /* * File: main.cpp * Author: lenovo * * Created on 2011年9月29日, 上午8:43*/ #include <cstdlib>#in ...

  6. 【DS】atoi()实现

    int my_atoi(char* pstr)   {       int Ret_Integer = 0;       int Integer_sign = 1;              /*  ...

  7. 【DS】About Stack

    栈 一言以蔽之,就是后进的先出(LIFO). C语言实现代码: #include<stdio.h> #include<stdlib.h>typedef struct Stack ...

  8. 【DS】三分钟带你学会时间(空间)复杂度

    一. 简单认识集合框架 Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces ...

  9. centos7 r语言安装_【DS】Centos7服务器上安装R和Rstudio

    笔者邀请您,先思考: 1 服务器上如何安装R和RStudio? 为了增加计算力来处理和整合更多和更杂的数据集,运维同事给我们分配了服务器.服务器是用Centos7的Linux系统,为了完成数据科学任务 ...

最新文章

  1. cytoscape插件下载_cytoscape插件BinGO安装以及GO富集分析和网络可视化
  2. WinDbg !locks 不可用的问题
  3. Solidworks输出Autocad的DWG格式乱码怎么办
  4. Android的消息处理机制——Looper,Handler和Message浅析
  5. 中学校园网建设实践与思考
  6. J-LINK7 固件修复
  7. 左神算法:二叉树的最大 / 最小深度(普通+Morris遍历进阶)(Java版)
  8. dataTable的用法
  9. [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
  10. unity 日志级别_【Unity】通用的Debugger日志模块
  11. oracle报sp20042,oracle中ora-04301故障处理
  12. mysql 批量数据导入报错_Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA
  13. 松露菌行业调研报告 - 市场现状分析与发展前景预测
  14. 两个Listbox的关联(省名 和 该省城市的对应)
  15. ios12后,获取不到WIFI(SSID)相关信息
  16. 神界计算机丢失msvcp120.dll,win8 msvcp120.dll丢失怎样修复?计算机中丢失msvcp120.dll处理办法...
  17. Java的历史及发展
  18. 02_SSM整合测试与系统间通信(Dubbo)
  19. Jquery Uploadify之Java获取动态传参参数
  20. 工作组计算机如何设置文件共享,怎么设置办公室几台电脑文件共享?

热门文章

  1. MATLAB知识点1
  2. 码神之路博客项目构建记录
  3. Matab 读取修改 XML
  4. Vue前后台数据交互实例演示,使用axios传递json字符串、数组
  5. 双击SDK Manager.exe和AVD Manager.exe时,弹出提示:failed to execute tools\android.bat解决办法
  6. poj 1860 拓扑。。
  7. 第3周实践项目3 求集合并集
  8. [YTU]_2642 (填空题:类模板---求数组的最大值)
  9. OpenCV中的数据结构
  10. mysql生成100000个数据并检验索引的效果