CF1649A 题解
Jerrlee✅
2022-03-11 13:33:24
## 题意
给定一个一列的棋盘,`1` 代表可以走,`0` 代表不能走,你只能**跳一次**,越过一部分棋盘,其余情况只能向右移一格,求跳了几格(开头结尾都是 `1`,没有给出)。
## 思路
注意到:只能**跳一次**,所以枚举 `0` 前面的 `1` 即可。这点很重要!很多人挂在这儿的!
## 代码
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int ans1=-1,ans2=-1,a[n+1];
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) if(!a[i]){ans1=i-1;break;}
for(int i=n-1;i>=0;i--) if(!a[i]){ans2=i+1;break;}
cout<<ans2-ans1<<endl;
}
}
```
[AC 记录(洛谷)](https://www.luogu.com.cn/record/71038489)
[AC 记录(CF)](https://www.luogu.com.cn/record/71038489)