// http://www.spoj.com/problems/PT07Y/
#include <iostream>
using namespace std;
int findroot(int* points, int p) {
while (points[p] != p) p = points[p];
return p;
}
int main() {
int V, E;
cin >> V >> E;
int *points = new int[V+1];
for (int i = 1; i <= V; i++) {
points[i] = i;
}
bool YES = true;
for (int i = 0; i < E; i++) {
int u, v;
cin >> u >> v;
if (!YES) continue;
int rootu = findroot(points, u);
int rootv = findroot(points, v);
if (rootu != rootv) {
points[v] = u;
continue;
}
else {
YES = false;
}
}
if (YES) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
return 0;
}
SPOJ PT07Y
最新推荐文章于 2019-10-31 20:43:01 发布