溯源
时间限制:1秒 内存限制:256M
【题目描述】
一种奇怪的疾病整沿着街道边的 \(N(1≤N≤3⋅10^5)\) 户居民家庭传播。最初,有一些家庭被感染。每到夜晚,被感染的家庭会将疾病传播给它左右两边的邻居(如果这些邻居存在的话)。一旦家庭被感染,她就会持续处于感染状态。
经过一些晚上,疾控中心意识到情况已经失控,因此他对家庭进行了检测以确定哪些家庭感染了疾病。然后想根据检测结果找出最少有多少家庭最初可能感染了这种疾病。
【输入格式】
第一行为一个整数 \(N\),即家庭数量。接下来一行,包含长度为 \(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
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 3
- 已通过
- 1
- 通过率
- 33%
- 被复制
- 1
- 上传者