期望得分:100+30+100=230

实际得分:100+30+70=200

T3 数组开小了 。。。。。

 

2017 国庆湖南Day2

 

记录 1的前缀和,0的后缀和

枚举第一个1的出现位置

#include<cstdio>
#include<cstring>
#include<algorithm>

#define N 100002

using namespace std;

char s[N];

int num[N];

int suf0[N],pre1[N];

int main()
{
    freopen("reverse.in","r",stdin);
    freopen("reverse.out","w",stdout);
    scanf("%s",s+1);
    int len=strlen(s+1);
    for(int i=1;i<=len;i++) num[i]=s[i]-'0';
    for(int i=1;i<=len;i++) pre1[i]=pre1[i-1]+num[i];
    for(int i=len;i;i--) suf0[i]=suf0[i+1]+(!num[i]);
    int ans=len;
    for(int i=1;i<=len;i++) ans=min(ans,pre1[i-1]+suf0[i]);
    ans=min(ans,pre1[len]);
    printf("%d",ans);
}
View Code

相关文章: