Big Water Promble

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

题目描述

给一个数列,会有多次询问,对于每一次询问,会有两种操作:
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的和,保证数据合法。

输出:

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

Example:

输入:

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

输出:

64

MY  DaiMa:

//#include<stdio.h>
//int main()
//{
//    long int a[100002],n,m,f,x,y,i,j,sum;
//    scanf("%ld%ld",&n,&m);
//    for(i=1;i<=n;i++)
//        scanf("%ld",&a[i]);
//    while(m--)
//    {
//        scanf("%ld%ld%ld",&f,&x,&y);
//        if(f==1)
//        {
//            a[x]+=y;
//        }
//        else if(f==2)
//        {
//            sum=0;
//            for(j=x;j<=y;j++)
//                sum+=a[j];
//            printf("%ld\n",sum);
//        }
//    }
//    return 0;
//}

这种写法的话会 运行超时,所以要在输入时就求和,然后最后在减去重复的
#include<stdio.h>
int main()
{
    long int a[100002],n,m,f,x,y,i,sum=0,s;
    scanf("%ld%ld",&n,&m);
    for(i=1;i<=n;i++)
    {
        scanf("%ld",&a[i]);
        sum=sum+a[i];
    }
    while(m--)
    {
        scanf("%ld%ld%ld",&f,&x,&y);
        if(f==1)
        {
            sum=sum+y;
            a[x]+=y;
        }
        else
        {
            s=sum;
            for(i=1;i<x;i++)
                s-=a[i];
            for(i=y+1;i<=n;i++)
                s-=a[i];
            printf("%ld\n",s);
        }
    }
    return 0;
}

全部评论

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务