专栏文章

题解: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 个月前
查看原文

分析如下

这道题就是一道贪心,首先有 nn 全灭盏灯,要用最少的操作使灯满足要求。因为第一次操作不需要代价且可以一次性调整从第 11 到第 ii 盏灯。所以第一次操作我们要使让不满足要求的灯尽可能少。然后再加上不满足灯的个数就行了。

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 条评论,欢迎与作者交流。

正在加载评论...