zoukankan      html  css  js  c++  java
  • CODE[VS] 2291 糖果堆

    题目描述 Description

    【Shadow 1】第一题

    WJMZBMR买了很多糖果,分成了N堆,排成一列。WJMZBMR说,如果Shadow能迅速求出第L堆到第R堆一共有多少糖果,就把这些糖果都给他。

    现在给出每堆糖果的数量,以及每次询问的L和R,你需要帮助Shadow,把每次询问的结果求出来。注意,你不需要考虑糖果被Shadow取走的情况。

    输入描述 Input Description

    第1行,2的整数N,M,分别表示堆数和询问数量;

    第2行,N个整数Ai,表示第i堆糖果的数量;

    第3-(M+2)行,每行2个整数Li, Ri,表示第i个询问是[Li, Ri]。

    输出描述 Output Description

    M行,对于每个询问,输出对应的和。

    样例输入 Sample Input
    5 5
    1 2 3 4 5
    1 5
    2 4
    3 3
    1 3
    3 5
    样例输出 Sample Output
    15
    9
    3
    6
    12
     
    数据范围及提示 Data Size & Hint

    对于50%的数据,1≤N,M≤100;
    对于100%的数据,1≤N,M≤100000,0≤Ai≤1000,1≤Li≤Ri≤N。

    海琴烟太美了。

    鬼刀必大火。2333

    这题乍一看,,挺简单的。

    第一思路应该就是纯模拟吧。

    循环输入l,r

    再从l到r加起来,输出。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 int n,m,a[100002],l,r,ans;
     9 
    10 int main()
    11 {
    12     scanf("%d%d",&n,&m);
    13     for(int i=1;i<=n;++i)
    14         scanf("%d",&a[i]);
    15     for(int i=1;i<=m;++i)
    16     {
    17         scanf("%d%d",&l,&r);
    18         for(int j=l;j<=r;++j)
    19         {
    20             ans+=a[j];
    21         }
    22         printf("%d
    ",ans);
    23         ans=0;
    24     }    
    25     return 0;
    26     
    27 }
    纯模拟TLE

    但是数据范围太大了,会t啊!

    像这样,只有42分。

    那么,我只能去借鉴别人的另外思路了。。

    可以通过一些方法来减少循环次数嘛,

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 int n,m,a[100002],l,r,sum[100002];
     9 
    10 int main()
    11 {
    12     scanf("%d%d",&n,&m);
    13     for(int i=1;i<=n;++i)
    14     {
    15         scanf("%d",&a[i]);
    16         sum[i]=sum[i-1]+a[i];
    17     }    
    18     while(m--)
    19     {
    20         scanf("%d%d",&l,&r);
    21         printf("%d
    ",sum[r]-sum[l-1]);
    22     }
    23     return 0;    
    24 }
    像这样,巧用数组
  • 相关阅读:
    树链剖分总结
    主席树总结
    BZOJ1053:反素数(数学)
    CH3101 阶乘分解
    2018-2019 ACM-ICPC ECfinal I. Misunderstood … Missing
    洛谷P3201 [HNOI2009]梦幻布丁(链表 + 启发式合并)
    Codeforces Round #552 (Div. 3) 题解
    线段树合并 总结
    生成器
    Python中input()和raw_input()的区别
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9162111.html
Copyright © 2011-2022 走看看