专栏文章
题解:AT_joig2021_c イルミネーション 2 (Illumination 2)
AT_joig2021_c题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqj9bdq
- 此快照首次捕获于
- 2025/12/04 05:42 3 个月前
- 此快照最后确认于
- 2025/12/04 05:42 3 个月前
分析如下
这道题就是一道贪心,首先有 全灭盏灯,要用最少的操作使灯满足要求。因为第一次操作不需要代价且可以一次性调整从第 到第 盏灯。所以第一次操作我们要使让不满足要求的灯尽可能少。然后再加上不满足灯的个数就行了。
AC代码
CPP#include<bits/stdc++.h>
using namespace std;
long long n,a[1000000],ans,b[500001],k,sum,cnt;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1; i<=n; i++) {
cin>>a[i];
if(a[i])cnt++;//统计不满组要求的灯
}
k=cnt;//不进行第一次操作的代价
for(int i=1; i<=n; i++) {
b[i]=b[i-1];
if(a[i]==0)b[i]++;//开了不该开的灯
else cnt--;//
if(k>b[i]+cnt) {
k=b[i]+cnt;//统计答案
}
}
cout<<k;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...