追踪
时间限制:1秒 内存限制:256M
【题目描述】
Farmer John 有 \(N(1≤N≤3⋅10^5)\) 头奶牛排成一列。不幸的是,有一种疾病正在传播。
最初,有一些奶牛被感染。每到夜晚,被感染的奶牛会将疾病传播给它左右两边的奶牛(如果这些奶牛存在的话)。一旦奶牛被感染,她就会持续处于感染状态。
经过一些晚上,Farmer John 意识到情况已经失控,因此他对奶牛进行了检测以确定哪些奶牛感染了疾病。请找出最少有多少头奶牛最初可能感染了这种疾病。
【输入格式】
第一行为一个整数 \(N\),即 Farmer John 拥有的奶牛数量。
接下来一行,包含长度为 \(N\) 的由 1 和 0 组成的位串。其中 1 表示一头被感染的奶牛,0 表示一头在经过若干晚之后仍未被感染的奶牛。
【输出格式】
输出一个整数,表示最少有多少头奶牛可能最初感染了这种疾病。
【输入输出样例1】
Input
5
11111
Output
1
【样例1解释】
假设只有中间的奶牛最初被感染。那么,奶牛们将按以下顺序被感染:
第 0 晚:00100(第三只奶牛一开始被感染)
第 1 晚:01110(第二和第四只奶牛现在被感染了)
第 2 晚:11111(第一和第五只奶牛现在被感染了)
第 3 晚:11111(所有的奶牛都已经被感染了,没有新的奶牛被感染)
……
经过两个或更多的晚上,奶牛们的状态即与输入的状态相符。还有许多其他的初始状态和夜晚数量可能导致了输入的状态,例如:
第 0 晚:10001
第 1 晚:11011
第 2 晚:11111
或者:
第 0 晚:01001
第 1 晚:11111
或者:
第 0 晚:01000
第 1 晚:11100
第 2 晚:11110
第 3 晚:11111
所有这些初始状态中至少有一头奶牛被感染。
【输入输出样例2】
Input
6
011101
Output
4
【样例2解释】
唯一可能导致这个最终状态的初始状态和夜晚数是:没有经过任何夜晚,输入中的四头感染的奶牛都是从最开始就感染了这种疾病。
【测试点性质】
测试点 \(3−7\) 满足 \(N≤1000\)。
测试点 \(8−12\) 没有额外限制。
【来源】
Mr.he
信息
- ID
- 2918
- 难度
- (无)
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者