题解 | 小红的华撃串
小红的华撃串
https://www.nowcoder.com/practice/6f8a4caace654a82803314c917a58a31
//使用暴力枚举求解 把四段调整为「1-0-1-0」或「0-1-0-1」
#include <stdio.h>
#include <string.h>
int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
int n;
char s[501];
scanf("%d %s", &n, s);
int pre_0[501]={0},pre_1[501]={0};
for(int i=1;i<=n;i++)
{
pre_0[i]=pre_0[i-1]+(s[i-1]=='0'?1:0);
pre_1[i]=pre_1[i-1]+(s[i-1]=='1'?1:0);
}
int ans=n;
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
for(int k=j+1;k<=n;k++)
{
int cnt1=0;
cnt1+=pre_1[i]-pre_1[0];
cnt1+=pre_0[j]-pre_0[i];
cnt1+=pre_1[k]-pre_1[j];
cnt1+=pre_0[n]-pre_0[k];
int cnt2=0;
cnt2+=pre_0[i]-pre_0[0];
cnt2+=pre_1[j]-pre_1[i];
cnt2+=pre_0[k]-pre_0[j];
cnt2+=pre_1[n]-pre_1[k];
ans=min(ans,min(cnt1,cnt2));
}
}
}
printf("%d",ans);
return 0;
}

