题意:把一个二进制数改成01相间的状态。允许选择两个数字相同连块,随意改变它们的数字
做法:可以确定的是,不管什么样的数字都是可以改成01相间的样子的,而且长度相同的数字只有两种01相间的情况,而且有可能只有一种情况是可行的。而且又可以确定的是,只要是合理方案,其实就是一个一个找出不对的数字进行改变就可以了。YY YY YY。。
#include <iostream>
#include <cstdio>
#include <algorithm>
const int LMT=1002;
using namespace std;
char s[LMT];
int main()
{
int n,a,b;
a=b=0;
scanf("%d",&n);
scanf("%s",s);
for(int i=0;i<n;i++)
{
if((s[i]+i)&1)a++;
else b++;
}
printf("%d\n",min(a,b));
return 0;
}