题目链接:http://ifrog.cc/acm/problem/1121
这道题的思路就是他总共只有k+1个状态,然后枚举所有状态,满足所有灯亮的条件就更新答案。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n, k;
int a[10007];
int main()
{
while(scanf("%d%d", &n, &k)!=EOF)
{
for(int i=1; i<=n; ++ i)
scanf("%d", &a[i]);
long long mx = 1e15;
for(int i=1; i<=min(k+1, n); ++ i)
{
long long res = a[i], s = i;
bool is = false;
while(s + 2*k + 1 <= n)
{
s += 2*k + 1;
res += a[s];
}
if(s + k >= n)
mx = min(mx, res);
}
printf("%lld
", mx);
}
return 0;
}