首页 > 编程语言 >三种语言实现前缀和(C++/Python/Java)

三种语言实现前缀和(C++/Python/Java)

时间:2024-07-31 10:07:14浏览次数:14  
标签:Java nextInt Python C++ int 整数 sc

题目

输入一个长度为 n 的整数序列。

接下来再输入 m 个询问,每个询问输入一对 l,r

对于每个询问,输出原序列中从第 l个数到第 r 个数的和。

输入格式

第一行包含两个整数 n 和 m。

第二行包含 n 个整数,表示整数数列。

接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。

输出格式

共 m 行,每行输出一个询问的结果。

数据范围

1≤l≤r≤n
1≤n,m≤100000
−1000≤数列中元素的值≤1000

输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

输出样例:

3
6
10

C++

#include <bits/stdc++.h>

using namespace std;

const int N = 100010;
int a[N], s[N];

int main()
{
    int n,m;
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        s[i] = s[i-1] + a[i];
    }
        
    while(m--)
    {
        int l,r;
        cin >> l >> r;
        cout << s[r] - s[l-1] << endl;
    }
}

Python

n,m = map(int, input().split())
a = [int(x) for x in input().split()]
a = [0] + a
s = [0]
for i in range(1, n+1):
    s.append(s[i-1] + a[i])
while m > 0:
    m -= 1
    l, r = map(int, input().split())
    print(s[r] - s[l-1])

Java

import java.util.*;
 
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] a = new int[n+1];
        int[] s = new int[n+1];
        for(int i = 1; i <= n; i++)
        {
            a[i] = sc.nextInt();
            s[i] = s[i-1] + a[i];
        }
        while(m > 0){
            m -= 1;
            int l = sc.nextInt();
            int r = sc.nextInt();
            System.out.println(s[r] - s[l-1]);
        }
    }
}

标签:Java,nextInt,Python,C++,int,整数,sc
From: https://www.cnblogs.com/fang0218/p/18334009

相关文章

  • Python - 旨在通过命令提示符执行数据清理,但代码似乎无法运行
    我从一位同事那里收到了这段代码,我打算用它来处理100csv文件以提取有关粒子的值。代码如下所示:importsysimportcsv#Usage#skdata_decode.py[inputfile1][inputfile2]...#(Itispossibletousefiledcardtospecifyinputfiles.)##l......
  • java String 方法总结
    在Java中,String类是一个非常重要的类,用于创建和操作字符串。String类被设计为不可变的(immutable),即一旦一个字符串被创建,包含在这个对象中的字符序列就不能被改变。下面是一些常用的String方法总结:1.获取字符串信息length():返回字符串的长度。charAt(intindex):返回......
  • Java中的封装
    在Java中,封装(Encapsulation)是面向对象编程(OOP)的四大特性之一(其他三个是继承、多态和抽象)。封装主要用来隐藏对象的属性和实现细节,仅对外公开接口(方法),与对象交互只能通过这些接口进行。这样做的好处包括提高代码的安全性、灵活性和可维护性。如何进行简单封装1.使用访问修饰......
  • JavaScript
    JS简介JS特点Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,遗留的速度问题,为客户提供更流畅的浏览效果。JS是一种运行于浏览器端上的小脚本语句,可以实现网页如文本......
  • 如何在 python 终端中的 x,y 位置上书写(基于文本)
    我想在python(基于文本)的终端中的定义位置(x,y)上写入字符。假设,我有一个大小为25x80的终端,并且想要在位置(2,20)上写入字符。我可以在Python中执行此操作吗?现在,我使用25x80数组,并写入该数组。为了在屏幕上显示,我清除屏幕并将该数组的全部内容写入屏幕,但这效......
  • Python - Composition
     classEngine:def__init__(self,power):self.power=powerdefstart(self):self.draw_current()self.spin()self.ignite()defdraw_current(self):print('Drawingcurrent')defspin(sel......
  • Python - Iterator vs Iterable
    Therearemanybuilt-infunctionsandmethodsthatreturniterablesanditerators.Hereareafewexamples:range()returnsaniterabledict.keys()returnsaniterabledict.items()returnsaniterabledict.values()returnsaniterableenumerate()returns......
  • 在python中使用变量引用Panda列名称
    我正在尝试编写一个函数来简化我的代码,因此我传递了包含列名称的变量。它适用于Django应用程序,调试器不会对我的错误所在提供任何反馈,只是“内部服务器错误”。我的代码工作正常,不是作为函数编写的:df_trips['trip_time_prep_starts']=df_trips["trip_time_prep_sta......
  • 如何在 Pyqt5 Python 中实现 QTableWidget 列过滤器中的搜索栏?
    我使用pyqt5创建了一个QTableWidget,并成功地在表格小部件的每一列中添加了过滤选项,并使用堆栈溢出上可用的答案之一。过滤器按预期工作,但我想在顶部的过滤器中添加搜索栏来搜索值。在我的python脚本中,过滤器中可能有大约50多个唯一值。因此,如果有一种方法可以在过滤器......
  • C++中的函数
    C++当中的函数任务目标STL函数(内建函数)自定义函数自定义函数return_typefunctionName(parameterlist){ //函数体 return...;}返回值return_type,就是做了某件事情,你得有个结果吧。返回值类型都有哪些?intchardoubleboolvoid(空返回值)数组,不能作为返回值函数......