zoukankan      html  css  js  c++  java
  • 士兵杀敌(二)(效率求解)

     

    士兵杀敌(二)

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:5
     
    描述

    南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。

    小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。

    南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。

     
    输入
    只有一组测试数据
    第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条数。(1<M<100000)
    随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=100)
    随后的M行每行是一条指令,这条指令包含了一个字符串和两个整数,首先是一个字符串,如果是字符串QUERY则表示南将军进行了查询操作,后面的两个整数m,n,表示查询的起始与终止士兵编号;如果是字符串ADD则后面跟的两个整数I,A(1<=I<=N,1<=A<=100),表示第I个士兵新增杀敌数为A.
    输出
    对于每次查询,输出一个整数R表示第m号士兵到第n号士兵的总杀敌数,每组输出占一行
    样例输入
    5 6
    1 2 3 4 5
    QUERY 1 3
    ADD 1 2
    QUERY 1 3
    ADD 2 3
    QUERY 1 2
    QUERY 1 5
    样例输出
    6
    8
    8
    20

    02.#include<iostream>

    03.#include<cstdio>
    04.#include<cstring>
    05.  
    06.int largest;
    07.int a[1000001];
    08.  
    09.int lowbit(int num)
    10.{
    11.  return num&(-num);           
    12.}
    13.  
    14.void plus(int pos, int value)
    15.{
    16.  while(pos<=largest)
    17.  {
    18.      a[pos]+=value;
    19.      pos+=lowbit(pos);                
    20.  }         
    21.}
    22.  
    23.int sum(int num)
    24.{
    25.   int s=0; 
    26.   while(num>0)
    27.   {
    28.      s+=a[num];
    29.      num-=lowbit(num);             
    30.   }  
    31.   return s; 
    32.}
    33.int main()
    34.{
    35.  int m,n,i,start,last,k;
    36.  char str[7];
    37.  
    38.  scanf("%d%d",&n,&m);
    39.   largest=n;
    40.   for(i=1; i<=n; i++)
    41.   {
    42.     scanf("%d",&k);
    43.     plus(i,k);
    44.   }
    45.   while(m--)
    46.   
    47.     scanf("%s%d%d",str,&start,&last);
    48.     if(str[0]=='Q')
    49.     {
    50.        printf("%d\n",sum(last)-sum(start-1));
    51.     }
    52.     else  plus(start,last);
    53.   }
    54.}
  • 相关阅读:
    【python之路39】Python 正则表达式
    【html、CSS、javascript-4】新特征之增强表单
    node调试工具--node-inspector安装
    node多版本管理--nvmw
    transform的影响
    HTML5 input事件检测输入框变化[转载]
    mysql5.7.16安装 初始密码获取及密码重置
    undefined 与void 0
    html 自定义标签使用实现方法
    图片轮播滚动
  • 原文地址:https://www.cnblogs.com/hpuwangjunling/p/2376050.html
Copyright © 2011-2022 走看看