CF366B 题解

灵感源于明朝美学

题目思路

设我们从第 pos 个任务开干。

那么,责备发生的时刻就是 pos, pos+k, pos+2k, pos+3k, pos+4k,每次加 k。所以我们只需要记录每一组的责备力度和,再找出力度最小的答案即可。

时间复杂度 O(n)。

代码实现

#include<bits/stdc++.h>
using namespace std;
int s[323232],a[323232],n,k,mp;
int main(){
    cin.tie(0)->sync_with_stdio(0);
    cin>>n>>k;
    for(int i=0;i<n;i++){
        cin>>a[i];
        s[i%k]+=a[i];
    }
    int ms=s[0];
    for(int i=1;i<k;i++){
        if(s[i]<ms) ms=s[i],mp=i;
    }
    cout<<mp+1;
    return 0;
}

祝通过!

查看原题链接