首先判断一下这个串是不是某个串的前缀 像s1 = ab 与 s2 =abb ,这里s1是s2的前缀,那么s2就一定不可以 判断一下优先级是否合法, s1=ab, s2=bb, s3=aa s1是一定不可以作为开头的,比较s1和s2的时候a>b,比较s1和s3的时候a<b 也就是自相矛盾了,所以不可以。 判断是否矛盾,用toposort就可以了 比较大小和判断前缀,可以用一个字典树进行维护 #include <bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(0);cin.tie(...