1 #include2 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 3 using namespace std; 4 5 const int MAXV = 100003; 6 int V,E,Vis[MAXV]; 7 vector G[MAXV]; 8 9 int dfs(int u)10 {11 if(Vis[u]) return 0;12 Vis[u] = 1;13 int sz = G[u].size(),r = sz&0x1;14 _for(i,0,sz) r += dfs(G[u][i]);15 return r;16 }17 18 int main()19 {20 for(int a,b,n;cin >> V >> E;n = 0)21 {22 _for(i,0,V+1) G[i].clear();23 memset(Vis,0,sizeof(Vis));24 _for(i,0,E)25 {26 cin >> a >> b;27 if(a==b) continue;28 G[a-1].push_back(b-1),G[b-1].push_back(a-1);29 }30 31 _for(i,0,V)32 {33 if(Vis[i] || G[i].empty()) continue;34 n ++,n += max(0,dfs(i)/2-1);35 }36 cout << n << endl;37 }38 return 0;39 }