Problem
给N串字符串Si,通常定义字典序大小关系为 ‘a‘<‘b‘<‘c‘<......<‘y‘<‘z‘,现要求重新定义大小关系使得对于任意 i,j(i<j)满足Si <Sj,输出大小关系(一串‘a‘-‘z‘的排列),或者输出不存在(任意大小关系都不能满足要求)。
Limits
Time Limit(ms): 2000
Memory Limit(MB): 256
N: 100
|Si|: 100
Solution
用图论方法解决,发现满足拓扑关系。枚举相邻两串Si 与 S(i+1),若发现Si中某字符c1 必须 小于 S(i+1)中某字符c2,则c1到c2连一条边,若有环则无解,否则拓扑排序求解。同时,若S(i+1)是Si 的真子串,也无解。
More
典型的用图论解决实际问题的题目,不妨用关系学知识来分析。定义关系P,c1 P c2表示c1小于c2,则c1到c2有一条有向边,关系P满足反自反性,反对称性,传递性,与拓扑关系一致。若图中出现环,则与P的反自反性,反对称性矛盾。否则用拓扑排序解即可。
Complexity
Time Complexity: O(N*|Si|)
Memory Complexity: O(N*|Si|)
Source
Code
Codeforces Round #290 Div1 A From My Github
时间: 2024-11-10 07:37:52