2023-12-11 PAST #15 G
PAST #15 第15回 アルゴリズム実技検定(過去問)
- G - N-SAT
https://atcoder.jp/contests/past15-open/tasks/past202306_g
- 提出: https://atcoder.jp/contests/past15-open/submissions/48431538
(2^N)MN
でもN <= 15
でM <= 100
で 49,152,000 なので間に合う- ビット全探索ですべての組み合わせに対して M の条件をすべて試せばいい
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
m: usize,
};
let mut abs = vec![];
for _ in 0..m {
input! {
k: usize,
ab: [(Usize1, usize); k],
}
abs.push(ab);
}
for bits in 0..1 << n {
let x = (0..n).map(|i| (bits >> i) & 1).collect::<Vec<usize>>();
if abs
.iter()
.all(|ab| ab.iter().copied().any(|(a, b)| x[a] == b))
{
println!("Yes");
return;
}
}
println!("No");
}
今日のコミット。
- rust-atcoder 1 commit
- rust-examples 1 commit
- serde-firestore-value 1 commit
- genpi 1 commit