题目链接:
题意:一个无向图,一个球开始放在1号顶点处。一共有m条边,可知m条边组成的全排列有m!种。对于其中一种排列,依次操作每一条边,操作是指对于边(u,v),若球在u则换到v,若在v则换到u。既不在u也不在v则此操作后小球不动。问小球最后有多少种可能的位置?
思路:设g[u][v]表示(u,v)之间边的数量。首先我们判断1号点是否可达。一号点可达仅当下面情况之一成立:
(1)存在一个点v使得g[1][v]大于0且为偶数;
(2)存在一个点v使得g[1][v]大于1不为偶数,但是存在一个环包含v但是不包含1;
(3)存在一个包含1的环;
(4)存在至少两个点u和v使得g[1][u]>1且g[1][v]>1。
(5)1与任何点都不连通。
以上5种情况至少一种成立则1可达。下面是除1以外其他一点u可达的情况(首先1与u必是联通的,我们假设现在已经确定是联通的):
(1)g[1][u]为奇数;
(2)存在一个环除包含1和u外还至少包含其他一个点;
(3)存在一个包含1不包含u的环;
(4)存在一个包含u不包含1的环。
#include #include #include #include #include #include #include #include #include #include #include