• Big Water Problem


    链接:https://www.nowcoder.com/acm/contest/77/B
    来源:牛客网

    Big Water Problem
    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 131072K,其他语言262144K
    64bit IO Format: %lld

    题目描述

    给一个数列,会有多次询问,对于每一次询问,会有两种操作:
    1:给定两个整数x, y, 然后在原数组的第x位置上加y;
    2:给定两个整数l,r,然后输出数组从第l位加到第r位数字的和并换行

    输入描述:

    第一行有两个整数n, m(1 <= n, m <= 100000)代表数列的长度和询问的次数
    第二行n个数字,对于第i个数字a[i],(0<=a[i]<=100000)。
    接下来m行,每一行有三个整数f, x, y。第一个整数f是1或者是2,代表操作类型,如果是1,接下来两个数x,y代表第x的位置上加y,如果是2,则求x到y的和,保证数据合法。

    输出描述:

    输出每次求和的结果并换行
    示例1

    输入

    10 2
    1 2 3 4 5 6 7 8 9 10
    1 1 9
    2 1 10

    输出

    64
     1 #include <iostream>
     2 #include <string>
     3 #include <algorithm>
     4 using namespace std;
     5 int a[100005];
     6 long long s[100005];
     7 int x[100005];
     8 int y[100005];
     9 int z[100005];
    10 int main()
    11 {
    12     int n, q;
    13     scanf("%d %d", &n, &q);
    14     int i;
    15     s[0] = 0;
    16     for (i = 1; i <= n; i++)
    17     {
    18         scanf("%d", &a[i]);
    19         s[i] = s[i - 1] + a[i];
    20     }
    21     int k = 1;
    22     for (i = 1; i <= q; i++)
    23     {
    24         int e, u, v;
    25         scanf("%d %d %d", &e, &u, &v);
    26         int j;
    27         long long ss = 0;
    28         if (e == 1)//如果是第一种情况,存下来
    29         {
    30             x[k] = e;
    31             y[k] = u;
    32             z[k++] = v;
    33         }
    34         if (e==2)//如果是第二种情况
    35         {
    36             for (j = 1; j <= k-1; j++)//遍历第一种情况
    37             {
    38                 if (y[j]<=v&&y[j]>=u)//如果要加的数在u和v之间
    39                 {
    40                     ss += z[j];//总和+上
    41                 }
    42             }
    43             ss += s[v] - s[u-1];
    44             cout << ss << endl;
    45         }
    46         
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    mssql like的效率
    【编辑器开发】基本js指令
    QQ菜单OUTLOOK风格
    oracle exp/imp命令详解
    javascript读取xml
    在c#中调用windows脚本的方法
    oracle常用命令(转)
    有效创建Oracle dblink的两种方式
    oracle 绑定变量(bind variable)
    Oracle备份与恢复
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13271171.html
Copyright © 2020-2023  润新知