2020-11-03
dp
873B 1500
题目
原题链接:https://codeforces.com/problemset/problem/873/B
思路
题目大意:给定一个01串,找到其中最长的一个子串,子串满足0的数量等于1的数量,输出其长度。
思路:将0化作-1,则最长子串和为0。
再结合前缀和思想,若两个位置前缀和相同,则中间一段和为0。
所以题目就变成了找出两个相同前缀和的最大距离。
如此,可做。
代码实现
#include <iostream>
#include <algorithm>
#include <cstring>
#include <map>
#include <string>
using namespace std;
#define mes0(c) memset((c),0,sizeof(c))