https://codeforces.com/contest/1418/problem/C
题目:
ac代码:
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int N = 2e5 + 10;
int f[N];
int a[N];
int main()
{
int t;
cin >> t;
while(t--)
{
int n ;
cin >> n ;
for(int i = 1; i <= n ; i ++)
{
cin >> a[i];
}
a[n+1] = 0 ;
for(int i = 0 ; i <= n+1 ; i ++)f[i] = 1e9;
if(a[1] == 1)f[1] = 1;
else f[1] = 0 ;
for(int i = 2; i <= n+1 ; i ++)
{
f[i] = f[i-1];
if(a[i])f[i]++;
if(i >= 2)f[i] = min(f[i],f[i-2] + (a[i] == 1));
if(i >= 3)f[i] = min(f[i],f[i-3] + (a[i] == 1));
}
cout <<f[n+1]<<endl;
}
return 0 ;
}