双语题解
2026-07-18 18:35:20
发布于:陕西
2阅读
0回复
0点赞
本题考察前缀和。测试样例比较大,简单计算容易超时造成TLE。需要在输入同时计算前几项的和,获取时减一下。参考代码:
C++:使用vector操作可能会略微节省内存,性能:30ms 4MB
#include<iostream>
#include<vector>
using namespace std;
int main(){
int n,m,x,l,r;
vector<int>e,s;
s.push_back(0);
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>x;
e.push_back(x);
s.push_back(s.at(i)+x);
}
while(m-->0){
cin>>l>>r;
cout<<s.at(r)-s.at(l-1)<<endl;
}
return 0;
}
Python:使用<str>.split()分析输入,代码量少一些,性能:16.6MB 80ms
n,m=input().split()
x=[int(i)for i in input().split()]
s=[0]
for i in range(int(n)):
s.append(s[i]+x[i])
for i in range(int(m)):
l,r=input().split()
print(s[int(r)]-s[int(l)-1])
这里空空如也

有帮助,赞一个