PAT 甲级 1126 Eulerian Path (25 分)
思路: 1.结点度数全为偶数的为欧拉回路; 2.度数为奇数的结点数量为1或大于3的为非欧拉路径; 3.度数为奇数的结点数量为2的为欧拉路径; (PS:很多大佬讲这是根据题意得出的,本杠精小声bb一下,除了第一点题目也没说数量为2的就一定有欧拉路径,当然了每个人理解可能不一样,2、3两点稍微推理下也能得出来) 4.非连通图没有欧拉回路或者欧拉路径; 代码: # include <iostream> # include <vector> using namespace std ; bool isv [ 501 ] ; vector < vector < int >> v ; void dfs ( int n ) { isv [ n ] = true ; for ( int i = 0 ; i < v [ n ] . size ( ) ; i ++ ) if ( ! isv [ v [ n ] [ i ] ] ) dfs ( v [ n ] [ i ] ) ; } int main ( ) { int n , m ; scanf ( "%d%d" , & n , & m ) ; v . resize ( n + 1 ) ; for ( int i = 1 ; i <= m ; i ++ ) { int a , b ; scanf ( "%d%d" , & a , & b ) ; v [