描述
题解
求前N项和存储起来,然后前后相减与K对比,水题……
代码
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAXN = 1e4 + 10;
int A[MAXN];
int sum[MAXN];
int main(int argc, const char * argv[])
{
int N, K;
cin >> N >> K;
memset(sum, 0, sizeof(sum));
for (int i = 1; i <= N; i++)
{
scanf("%d", A + i);
sum[i] = sum[i - 1] + A[i];
}
for (int i = 0; i < N; i++)
{
for (int j = i + 1; j <= N; j++)
{
if (sum[j] - sum[i] == K)
{
cout << i + 1 << ' ' << j << '\n';
return 0;
}
}
}
cout << "No Solution\n";
return 0;
}

本文介绍了一道ACM竞赛中的模版题目及其解决方案。通过计算前缀和的方法,快速找出数组中和为特定值K的子数组,并给出具体实现代码。
982

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



