27分求助w刚学图论没多久写的挺答辩的;w;;;;;;;;;;;
查看原帖
27分求助w刚学图论没多久写的挺答辩的;w;;;;;;;;;;;
373334
biggay002楼主2023/7/26 22:57
#include <bits/stdc++.h>
#include <cstdio>
#include <iostream>
#include <cmath>
#include <iomanip>
#include <algorithm>
#include <cstring>
#include <queue>
#include <stack>
#define TRACE 1
#define tcout TRACE && cout

//#include <ctime>
//#include <cstdlib>

using namespace std;

vector <long long> g[100010];
bool vis[1100][110000];
int ans;
bool flag;
void dfs(int n)
{
	for (int i = 0; i < g[n].size(); i++)
	{	
		if(vis[n][g[n][i]] == true)
		{	
			flag = true;
		//	cout << " " << n << " " << g[n][i] << endl;
			vis[n][g[n][i]] = false;
			vis[g[n][i]][n] = false;
			dfs(g[n][i]);
		
		}
	}
	return ;
}
int main()
{
	int n , m;
	cin >> n >> m;
	for (int i = 1; i <= m; i++)
	{
		int u , v;
		cin >> u >> v;
		vis[u][v] = true;
		vis[v][u] = true;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	for (int i = 1; i <= n; i++)
	{
		flag = false;
		if (g[i].size() != 0)
		{
	
			dfs(i);
			if (flag == true)
			{
				ans++;
			}
		}
		
	}
	cout << ans << endl;
	return 0;
}

2023/7/26 22:57
加载中...