1121 Reverse the lights(“玲珑杯”线上赛 Round #15 河南专场)

题目链接: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\n", mx);
    }
    return 0;
}
posted @ 2017-05-31 15:30  aiterator  阅读(179)  评论(0编辑  收藏  举报