Bipartie匹配形成一个数组

时间:2016-12-19 18:53:21

标签: algorithm graph

我从1 to N获得了一个号码,Ma形式提供b关系,我们可以在其中连接号码ab
我们必须形成有效数组,如果任何两个连续索引A[i] and A[i+1] is one of the M relationship

,则说一个数组是有效的

我们必须构造一个有效的大小为N的数组,总是可以构造它。

解决方案:制作以下的二分图,但是存在漏洞,

let N=6
M=6
1 2
2 3
1 3
4 5
5 6
3 4

So Bipartite Matching gives this:
Match[1]=2 
Match[2]=3 
Match[3]=1   // Here it form a Loop
Match[4]=5
Match[5]=6 

那么如何打印一个有效的大小为N的数组,因为N可以非常大,所以可以形成很多循环?还有其他解决方案吗?

另一个例子:

let N=6
M=6
1 3
3 5
2 5
5 1
4 2
6 4


  It's will form a loop  1->3->5->1
1 3 5 2 4 6

0 个答案:

没有答案