diff --git a/bjtu/1987/1987.cpp b/bjtu/1987/1987.cpp new file mode 100644 index 00000000..89d392ce --- /dev/null +++ b/bjtu/1987/1987.cpp @@ -0,0 +1,48 @@ +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 1e4 + 5; + +int n, m, cnt, cnt2; +std::vector g[N]; +bool vis[N], flag = true; + +void dfs(int u) { + cnt++; + vis[u] = true; + + for (int v : g[u]) { + if (!vis[v]) dfs(v); + } +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n >> m; + + for (int i = 1, u, v; i <= m; i++) { + cin >> u >> v; + + g[u].emplace_back(v); + g[v].emplace_back(u); + } + + for (int i = 1; i <= n; i++) { + if (!vis[i]) { + int pre = cnt; + dfs(i); + + if (cnt - pre > 1) cnt2++; + } + } + + cout << (cnt2 <= 1 ? "YES" : "NO") << endl; + + return 0; +}