武汉ACM集训——贪心-1
题解
题目数据量小,可以直接前缀和方法求解。
从 n 开始向前遍历,直到遍历到 m 时。ans = min{a[i] - a[i - m]};
AC代码
#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e3 + 5;
#define inf 0x3f3f3f3f
int ans[maxn];
int main()
{
int n, m;
scanf("%d%d", &n, &m);
memset(ans, 0, sizeof(ans));
// 存储数据
for (int i = 1; i <= n; ++i)
{
scanf("%d", &ans[i]);
ans[i] += ans[i - 1];
}
// 遍历求最小值
int sum = inf;
for (int i = n; i >= m; --i)
{
sum = min(sum, ans[i] - ans[i - m]);
}
printf("%d", sum);
return 0;
}