题意:
对于给定的一个数列a[n],如果现在点i,那么下一个点就在a[i],现在问给定n个点,找到一个最小的t,使得对于从任意一个点x出发,经过t次之后,到达的点y, 使得点y经过t次之后会回到点x。
要点:
一看就是图找环,找到所有独立的环对应的节点数,对所有节点数求最小公倍数就是结果。有个地方要注意就是,当节点数是偶数时,比如1->2->3->4->1,这种情况要将节点数/2计算,因为比如1到达3要2次,3到达1也是两次,肯定比从1绕一圈再到1要小,奇数没有办法。
#include #include #include #include #include