0%

Edu-179-E. Changing the String

思路讲解

感觉每次选择都可能有后效性怎么办?

1
2
3
// 碰到b,a   c,a operate 在最近的位置
// a,b a,c not operate
// b,c c,b operate or not?

仔细一想那,这道题目也没有那么复杂其实,其实只有b,c是需要考虑是否操作的。

只考虑那么一种情况的话,其实就看后面有没有c,a,而且b的前面c的数量啦。

https://www.cnblogs.com/fwdzh/p/18909502

这个题解告诉我们,我们是不可能在线处理的,这个难度是比较大的,但是我前面一直在想这个(QAQ)。

AC代码

https://codeforces.com/contest/2111/submission/322930903

心路历程(WA,TLE,MLE……)

那么我们发现,匹配应该是这样匹配,而不是用最大的匹配最小的。

1
2
3
4
5
6
7
if(*g[idx2].begin()<*g[idx3].rbegin()){
// g[idx2].pop_front();
auto it=g[idx3].lower_bound(*g[idx2].begin());
g[idx2].erase(g[idx2].begin());
g[idx3].erase(it);
s[i]='a';
}