我从1 to N
获得了一个号码,M
和a
形式提供b
关系,我们可以在其中连接号码a
和b
。
我们必须形成有效数组,如果任何两个连续索引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