首页 > TAG信息列表 > cf1458D
[cf1458D]Flip and Reverse
将$s$中的01分别变为$1,-1$,即得到一个序列$a_{i}$(设其长度为$n$,下标范围为$[1,n]$) 对$a_{i}$建立一张有向图,其点集合为$Z$,并对$\forall 0\le k<n$从$\sum_{i=1}^{k}a_{i}$向$\sum_{i=1}^{k+1}a_{i}$连边(允许重边),那么$a_{i}$即对应于其中一条以0为起点的欧拉路 若对区间$[l,r]$操作CF1458D Flip and Reverse
一、题目 点此看题 二、解法 没有什么好的想法,就从图论的角度入手吧。 要根据题目特性来建图,首先要考虑把什么当做点的问题,如果把字符串的元素当成点是不好表示 子串必须包含同样数量的字符0与1 这个限制的。但是前缀和可以方便地表示这个限制,令 \(1\) 为 \(1\),\(0\) 为 \(-1\),那CF1458D Flip and Reverse
一个\(01\)串,可以如此操作:选择一个\(0,1\)出现次数相同的子串,将其翻转并取反。 问经过任意次操作之后的字典序最小的字符串是什么。 \(n\le 5*10^5\) 神仙转化。 把\(0\)视作\(+1\),把\(1\)视作\(-1\),做个前缀和\(s_i\)。连边\((s_i,s_{i+1})\)。 原来的字符串相当于这个图上的一题解 CF1458D 【Flip and Reverse】
题面 \(T\) 组询问,每次给定一个字符串,每次可以选择一个 1 和 0 数量相等的字符串,然后把字符串前后翻转并 01 翻转。求最后得到的字典序最小的字符串。 数据范围 : \(T, n \le 5 \times 10^5, \sum n \le 5 \times 10^5\) 题解 刚才有个群友问我 Z 菜鸡发生肾摸事了,我说怎么回