[Clover S1]哈密顿路

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 hamilton.in 输出文件 hamilton.out
哈密顿路(hamilton.pas/.c/.cpp)
【题目叙述】
SHY 喜欢研究各种各样奇奇怪怪的东西~
一天,SHY 研究了一个关于哈密顿路的问题。
如果一条路径满足:不经过重复顶点、不经过重复边、首尾相连, 那么称这条路径为简单环。
给出一张无向图,求这个无向图当中长度不小于3(即经过不少于3 个点)的简单环的个数。
【输入格式】
第一行两个整数N、M,表示图有N 个点、M 条边。
接下来M 行,每行两个整数a、b,表示顶点a 和顶点b 之间有一条无向边。
数据保证没有自环和重边的出现。
【输出格式】
一行一个整数,表示无向图当中长度不小于3 的简单环的个数。
【输入样例】
4 6
1 2
1 3
1 4
2 3
2 4
3 4
【输出样例】
7
【样例解释】
七个环分别为:
1->2->3->1
1->2->4->1
1->3->4->1
2->3->4->1
1->2->3->4->1
1->2->4->3->1
1->3->2->4->1
【数据范围】
对于50%的数据,保证答案不大于10^6.
对于100%的数据,N<=20, 保证答案可以用64 位整形存储,请C/C++语言选手一定要注意
输入输出问题,对于使用C++语言的选手推荐采用cin/cout 进行输入/输出操作。