Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <algorithm>#include <map>#include <set>#include <vector>using namespace std;int main() {int T, M, N;scanf("%d", &T);while (T--) {scanf("%d%d", &N, &M);if (M != N-1) {printf("NO\n");continue;}map<int, set<int> > adj;for (int i = 0; i < M; i++) {int a, b;scanf("%d%d", &a, &b);adj[a].insert(b);adj[b].insert(a);}// find the node with 1 edgesvector<int> leaves;for (map<int, set<int> >::iterator iter = adj.begin(); iter != adj.end(); ++iter) {int cnt = iter->second.size();if (cnt == 0) {printf("NO\n");