给一个01序列,求最少需要多少步让它变成 0 和1交替出现的序列
直接模拟变成两种序列需要的改变数就可以了
#include <bits/stdc++.h>
using namespace std;
int n;
void Gao()
{
int ans1=0,ans2=0,x,a[3]={0};
int sup1,sup2;
sup1=1;
sup2=0;
for (int i=1;i<=n;i++)
{
scanf("%d",&x);
ans1+=sup1^x,ans2+=sup2^x;
sup1^=1;sup2^=1;
}
cout<<min(ans1,ans2)<<endl;
}
int main()
{
// freopen("a.in","r",stdin);
while(cin>>n)
Gao();
return 0;
}