题目意思就是给出图上一些边,判断这个图是不是树,一开始没有注意到输入一上来就0 0的情况,WA了一次,看了discuss加上特判之后就A了,用了个水水的BFS:
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
#define MAX_ID 100000
vector<int> neighbour[MAX_ID + 1];
int countOfId;
bool vis[MAX_ID + 1];
int pre[MAX_ID + 1];
bool bfs(int st)
{
//initilaize flag
memset(vis, false, sizeof(vis));
//process
int visited = 0;
queue<int> q;
q.push(st);
pre[st] = -1;
vis[st] = true;
while(!q.empty()){
int x = q.front(); q.pop();
++visited;
const vector<int>& v = neighb