UVA 872 - 订购

时间:2015-08-24 11:15:59

标签: algorithm graph topological-sort

我在尝试从UVA解决以下问题时遇到问题:

给定A < B形式的变量约束列表,您将编写一个程序,打印与约束一致的变量的所有排序。例如,给定约束A < BA < C,变量A, BC有两个与这些约束一致的排序:A B C和{{ 1}}。

输入

输入以一行上的单个正整数开始,表示后面的案例数,每个案例如下所述。该行后面是一个空行,两个连续输入之间也有一个空行。    输入由两行组成:一行上的变量列表,后面是下一行中A C B形式的约束列表。变量和约束由单个空格分隔。    所有变量都是单字符大写字母。将至少有两个变量,并且不超过20个变量。将至少有一个约束,并且不超过50个约束。订单中的约束条件不会超过300个。

输出

对于每个测试用例,输出必须遵循以下描述。两个连续案例的输出将用空行分隔。    应打印与约束条件一致的所有订单。订单按字母顺序打印,每行一个。一行上的字符用空格分隔。如果无法排序,则输出为单行,单词为A < B

示例输入

NO

示例输出

1

A B F G
A<B B<F

我尝试使用拓扑排序,同时使用队列来跟踪&#34;路径&#34;并打印出来。但是,我的代码似乎无法实现我的意图。我不是要解决整个问题。相反,我试图首先打印出所有组合(我无法做到)。 我只能从样本输入中获得AFFG

我的代码:

A B F G
A B G F
A G B F
G A B F

有人可以告诉我我错过了什么吗?感谢。

0 个答案:

没有答案