尽量采用存前n项和的方法存储,可能其他方法会超时(我没有试),,,看到此篇推荐看士兵杀敌(二)

#include<stdio.h>
int a[1000010];
int main()
{
int N, M, num, i, from, to;
scanf("%d%d", &N, &M);
a[0] = 0;
for(i=1;i<=N;i++)
{
scanf("%d", &num);
a[i] = a[i-1] + num;
}
while(M--)
{
scanf("%d%d", &from, &to);
printf("%d\n", a[to]-a[from-1]);
}
return 0;
}
本文介绍了一种通过预计算前缀和的方式来高效地解决区间和问题的方法。这种方法避免了每次查询时重复计算区间内元素的总和,显著提高了算法效率。
897

被折叠的 条评论
为什么被折叠?



