zoukankan      html  css  js  c++  java
  • ACM题目————士兵杀敌(四)

    描述

    南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的 人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的 事情,军师小工的任务就是在南将军询问他某个人的军功的时候,快速的报出此人的军功,请你编写一个程序来帮助小工吧。

    假设起始时所有人的军功都是0.

    输入
    只有一组测试数据。
    每一行是两个整数T和M表示共有T条指令,M个士兵。(1<=T,M<=1000000)
    随后的T行,每行是一个指令。
    指令分为两种:
    一种形如
    ADD 100 500 55 表示,第100个人到第500个人请战,最终每人平均获得了55军功,每次每人获得的军功数不会超过100,不会低于-100。
    第二种形如:
    QUERY 300 表示南将军在询问第300个人的军功是多少。
    输出
    对于每次查询输出此人的军功,每个查询的输出占一行。
    样例输入
    4 10
    ADD 1 3 10
    QUERY 3
    ADD 2 6 50
    QUERY 3
    样例输出
    10
    60
    不得不说,树状数组真的很好用!
     
     
     
    //Asimple
    #include <stdio.h>
    #include <iostream>
    #include <string.h>
    
    using namespace std;
    #define CLS(a) memset(a,0,sizeof(a))
    const int maxn = 1000010;
    int n, T, num, cnt, point, line, x, y, t;
    char str[10];
    int a[maxn];
    
    int lowbit(int i)
    {
        return i&(-i);
    }
    
    void update(int i, int v)
    {
        while( i > 0 )
        {
            a[i] += v ;
            i -= lowbit(i);
        }
    }
    
    int g_sum(int i)
    {
        int sum = 0 ;
        while( i <= n )
        {
            sum += a[i] ;
            i += lowbit(i) ;
        }
        return sum ;
    }
    
    int main()
    {
        CLS(a);
        scanf("%d %d",&T,&n);
        while( T -- )
        {
            scanf("%s",str);
            if( str[0] == 'A' )
            {
                scanf("%d %d %d",&x,&y,&num);
                update(y,num);
                update(x-1,-num);
            }
            else
            {
                scanf("%d",&num);
                printf("%d
    ",g_sum(num));
            }
        }
    
        return 0;
    }                
    低调做人,高调做事。
  • 相关阅读:
    《DSP using MATLAB》 示例 Example 9.12
    《DSP using MATLAB》示例 Example 9.11
    《DSP using MATLAB》示例 Example 9.10
    《DSP using MATLAB》示例Example 9.9
    《DSP using MATLAB》示例 Example 9.8
    《DSP using MATLAB》示例Example 9.7
    《DSP using MATLAB》示例 Example 9.6
    《DSP using MATLAB》示例Example 9.5
    《DSP using MATLAB》示例 Example 9.4
    (转载)【C++11新特性】 nullptr关键字
  • 原文地址:https://www.cnblogs.com/Asimple/p/5560884.html
Copyright © 2011-2022 走看看