結果

問題 No.2236 Lights Out On Simple Graph
ユーザー Yudai0606Nazo
提出日時 2023-03-09 20:31:30
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,442 bytes
コンパイル時間 4,207 ms
コンパイル使用メモリ 272,608 KB
最終ジャッジ日時 2025-02-11 07:14:26
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 48 WA * 9
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using mint = modint998244353;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define repf(i, n, flag) for (int i = 0; i < (int)(n) && flag; i++)
#define all(v) v.begin(), v.end()
const int INF = 1e9;
int main() {
int n, m;
cin >> n >> m;
dsu d(n);
vector dp(n, vector<int>(n, INF));
rep(i, m) {
int a, b;
cin >> a >> b;
a--; b--;
dp[a][b] = dp[b][a] = 1;
d.merge(a, b);
}
int cnt = 0;
vector<int> c(n);
rep(i, n) {
cin >> c[i];
if(c[i] == 1) cnt++;
}
auto grps = d.groups();
for(auto vec: grps) {
int tmp = 0;
for(int x: vec) if(c[x] == 1) tmp++;
if(tmp % 2 != 0) {
cout << -1 << endl;
return 0;
}
}
rep(k, n) rep(i, n) rep(j, n) dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
mcf_graph<int, int> g(2*n+2);
int s = 2*n, t = s + 1;
rep(i, n) g.add_edge(s, i, 1, 0);
rep(i, n) g.add_edge(n+i, t, 1, 0);
rep(i, n) rep(j, n) {
if(i == j) continue;
if(c[i] == 0) continue;
if(c[j] == 0) continue;
if(dp[i][j] >= INF) continue;
g.add_edge(i, n+j, 1, dp[i][j]);
}
auto res = g.flow(s, t);
if(res.first < cnt) cout << -1 << endl;
else cout << res.second / 2 << endl;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0