結果
問題 | No.1805 Approaching Many Typhoon |
ユーザー |
![]() |
提出日時 | 2022-01-14 16:55:34 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,880 bytes |
コンパイル時間 | 2,001 ms |
コンパイル使用メモリ | 196,380 KB |
最終ジャッジ日時 | 2025-01-27 10:47:21 |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 35 |
ソースコード
#define _USE_MATH_DEFINES#include <bits/stdc++.h>using namespace std;#define FOR(i,m,n) for(int i=(m);i<(n);++i)#define REP(i,n) FOR(i,0,n)#define ALL(v) (v).begin(),(v).end()using ll = long long;constexpr int INF = 0x3f3f3f3f;constexpr long long LINF = 0x3f3f3f3f3f3f3f3fLL;constexpr double EPS = 1e-8;constexpr int MOD = 1000000007;// constexpr int MOD = 998244353;constexpr int DY[]{1, 0, -1, 0}, DX[]{0, -1, 0, 1};constexpr int DY8[]{1, 1, 0, -1, -1, -1, 0, 1}, DX8[]{0, -1, -1, -1, 0, 1, 1, 1};template <typename T, typename U> inline bool chmax(T& a, U b) { return a < b ? (a = b, true) : false; }template <typename T, typename U> inline bool chmin(T& a, U b) { return a > b ? (a = b, true) : false; }struct IOSetup {IOSetup() {std::cin.tie(nullptr);std::ios_base::sync_with_stdio(false);std::cout << fixed << setprecision(20);}} iosetup;struct UnionFind {UnionFind(const int n) : data(n, -1) {}int root(const int ver) {return data[ver] < 0 ? ver : data[ver] = root(data[ver]);}bool unite(int u, int v) {u = root(u);v = root(v);if (u == v) return false;if (data[u] > data[v]) {std::swap(u, v);}data[u] += data[v];data[v] = u;return true;}bool is_same(const int u, const int v) {return root(u) == root(v);}int size(const int ver) {return -data[root(ver)];}private:std::vector<int> data;};int main() {int n, m, s, g; cin >> n >> m >> s >> g; --s; --g;vector<int> f(m), t(m); REP(i, m) cin >> f[i] >> t[i], --f[i], --t[i];vector<int> is_open(n, true);int u; cin >> u;while (u--) {int i; cin >> i; --i;is_open[i] = false;}UnionFind union_find(n);REP(i, m) {if (is_open[f[i]] && is_open[t[i]]) union_find.unite(f[i], t[i]);}cout << (union_find.is_same(s, g) ? "Yes\n" : "No\n");return 0;}