50分求救
查看原帖
50分求救
1070431
ywtank楼主2024/8/27 09:45

希望各位大佬帮忙看看

#include <bits/stdc++.h>
using namespace std;
int a[10000+10],dp[10000+10];
char c[10000+10];
int main(){
	cin >> (c+1);
	int lc=strlen(c+1);
	for(int i=1;i<=lc;i++){
		int d;
		if(c[i]=='0')d=-1;
		else d=1;
		a[i]=a[i-1]+d;
	}
	for(int l=1;l<=lc;l++){//假设字符串结束点为i 
		dp[l]=INT_MAX;
		for(int r=l;r<=lc;r++){
			dp[l]=min(a[r]-a[l-1],dp[l]);
		}
	}
	int mi=INT_MAX;
	for(int i=1;i<=lc;i++){
		mi=min(dp[i],mi);
	}
	cout << abs(mi);
	return 0;
}
2024/8/27 09:45
加载中...