2019牛客暑期多校训练营(第五场)H-subsequence 2 (拓扑排序+思维)

>传送门<

题意:给你几组样例,给你两个字符a,b,一个长度len,一个长度为len的字符串str,str是字符串s的子串

          str是s删掉除过a,b两字符剩下的子串,现在求s,多种情况输出一种。构造不出来输出-1

思路:

想都想不到的拓扑排序

因为这个str肯定是满足s顺序关系的S的子串,所以依次对str建图,又因为给了好几个子串所以全部建图,如果最后跑完拓扑,得到的字符串长度等于s长度即 可。

 所以今后遇到求顺序一定的问题或图,哪怕是字符串都往拓扑排序靠

细节:对于这道题最重要的就是对每一个字符编号

   pos=(s[i]-'a')*10000+sum; sum为该字符出现的次数;
   ans+=(u-1)/10000+'a'; u为编号; 即时出现cc这种情况,编号为20001,20002,但(u-1)/10000+'a结果都是等于c的
   强的一批的编号方式

猜你喜欢

转载自www.cnblogs.com/wizarderror/p/11311196.html