热门

最新

红包

立Flag

投票

同城

我的

发布
wzh18907434168
Eliooooooo
2 年前
truewzh18907434168

每日一题
DP34【模板】前缀和

描述
给定一个长度为n的数组a1,a2,....an.

接下来有q次查询, 每次查询有两个参数l, r.


输入描述:

第一行包含两个整数n和q.

第二行包含n个整数, 表示a1,a2,....an.

接下来q行,每行包含两个整数 l和r.



输出描述:

输出q行,每行代表一次查询的结果.



示例1

输入:

```
3 2
1 2 4
1 2
2 3
```

输出:

```
3
6
```

解法一:前缀和

时间复杂度:O(n) + O(q)

空间复杂度:O(n)
#include <iostream>
#include <vector>
using namespace std;

int main() {
int n, q;
cin >> n >> q;
vector<long long> arr(n + 1), dp(n + 1);
for(int i = 1; i <= n; i++)
{
cin >> arr[i];
dp[i] = dp[i - 1] + arr[i]; //统计前n个数和
}
for(int i = 0; i < q; i++)
{
int l, r;
cin >> l >> r;
cout << dp[r] - dp[l - 1] << endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")

DP34【模板】前缀和

每日学习打卡
CSDN App 扫码分享
分享
评论
3
打赏
  • 复制链接
  • 举报
下一条:
感谢各位的支持,市排名第十。加油加油,小比特,大梦想
立即登录