题解
2023-08-14 07:54:58
发布于:四川
20阅读
0回复
0点赞
思路:尺量法+前缀和加速
就是搞个前缀和,如果有损坏的灯就是 ,否则就是 ,然后算一下前缀和,然后算所有长度为 的区间和,取个最小值,就没了。
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n,k,m;
cin >> n >> k >> m;
vector<int> sm(n+1,0);
for (int i=0;i<m;++i){
int t;
cin >> t;
sm[t]=1;
}
for (int i=1;i<=n;++i){
sm[i]+=sm[i-1];
// cout<<sm[i]<<" ";
}
int ans=0x3f3f3f3f;
for (int i=1;i<=n-k;++i){
int l=i,r=i+k-1;
ans=min(ans,sm[r]-sm[l-1]);
}
cout<<ans<<endl;
return 0;
}
这里空空如也
有帮助,赞一个