結果

問題 No.2202 贅沢てりたまチキン
ユーザー yansi819
提出日時 2024-04-11 11:42:09
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
MLE  
実行時間 -
コード長 1,107 bytes
コンパイル時間 4,101 ms
コンパイル使用メモリ 257,720 KB
最終ジャッジ日時 2025-02-20 23:51:18
ジャッジサーバーID
(参考情報)
judge1 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 10 MLE * 1 -- * 17
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using mint = modint998244353;

int main() {
  int n, m; cin >> n >> m;
  vector<vector<int>> g(2 * n);
  for (int i = 0; i < m; i++) {
    int a, b; cin >> a >> b;
    a--, b--;
    g[a].push_back(n + b);
    g[n + b].push_back(a);
    g[b].push_back(n + a);
    g[n + a].push_back(b);
  }
  vector<vector<bool>> f(2 * n, vector<bool>(2 * n, false));
  for (int i = 0; i < 2 * n; i++) {
    f[i][i] = true;
  }
  for (int i = 0; i < 2 * n; i++) {
    queue<int> que;
    que.push(i);
    while (!que.empty()) {
      int v = que.front(); que.pop();
      for (int u: g[v]) {
        if (f[i][u] == false) {
          f[i][u] = true;
          que.push(u);
        }
      }
    }
  }
  //for (int i = 0; i < 2 * n; i++) for (int j = 0; j < 2 * n; j++) cout << f[i][j] << " \n"[j == 2 * n - 1];

  bool flag = true;
  for (int i = 0; i < n; i++) {
    if (!f[i][n + i]) {
      flag = false;
      break;
    }
  }
  cout << (flag ? "Yes": "No") << endl;
  return 0;
}
0