ログインしてください。
提出 #43280533
ソースコード 拡げる
use proconio::{input, marker::Chars};
fn main() {
input! {
s: [Chars; 4],
}
let (h, w) = (4, 4);
let to_bit = |i: usize, j: usize| -> usize { 1 << (i * w + j) };
let grid = {
let mut grid = 0_usize;
for i in 0..h {
for j in 0..w {
if s[i][j] == '#' {
grid |= to_bit(i, j);
}
}
}
grid
};
let mut dp = vec![std::f64::MAX; 1 << (h * w)];
dp[0] = 0_f64;
for s in 0..(1 << (h * w)) {
for i in 0..h {
for j in 0..w {
let mut ps = vec![];
let dir = vec![(-1, 0), (0, -1), (0, 0), (0, 1), (1, 0)];
for (dr, dc) in dir.iter().copied() {
let (nr, nc) = (i as i64 + dr, j as i64 + dc);
if !(0..h as i64).contains(&nr) || !(0..w as i64).contains(&nc) {
continue;
}
let (nr, nc) = (nr as usize, nc as usize);
if (s & to_bit(nr, nc)) == 0 {
continue;
}
ps.push(s ^ to_bit(nr, nc));
}
if ps.is_empty() {
continue;
}
dp[s] = dp[s].min(
ps.iter().copied().map(|p| dp[p]).sum::<f64>() / ps.len() as f64
+ dir.len() as f64 / ps.len() as f64,
);
}
}
}
let ans = dp[grid];
println!("{}", ans);
}
提出情報
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 6 / 6 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All | max.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, random_38.txt, random_39.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| max.txt | AC | 87 ms | 2552 KiB |
| random_01.txt | AC | 85 ms | 2484 KiB |
| random_02.txt | AC | 84 ms | 2456 KiB |
| random_03.txt | AC | 89 ms | 2484 KiB |
| random_04.txt | AC | 84 ms | 2484 KiB |
| random_05.txt | AC | 85 ms | 2560 KiB |
| random_06.txt | AC | 84 ms | 2512 KiB |
| random_07.txt | AC | 85 ms | 2468 KiB |
| random_08.txt | AC | 85 ms | 2496 KiB |
| random_09.txt | AC | 85 ms | 2476 KiB |
| random_10.txt | AC | 86 ms | 2460 KiB |
| random_11.txt | AC | 84 ms | 2400 KiB |
| random_12.txt | AC | 83 ms | 2600 KiB |
| random_13.txt | AC | 85 ms | 2464 KiB |
| random_14.txt | AC | 86 ms | 2536 KiB |
| random_15.txt | AC | 88 ms | 2416 KiB |
| random_16.txt | AC | 86 ms | 2472 KiB |
| random_17.txt | AC | 85 ms | 2412 KiB |
| random_18.txt | AC | 85 ms | 2428 KiB |
| random_19.txt | AC | 85 ms | 2428 KiB |
| random_20.txt | AC | 82 ms | 2552 KiB |
| random_21.txt | AC | 85 ms | 2536 KiB |
| random_22.txt | AC | 86 ms | 2440 KiB |
| random_23.txt | AC | 85 ms | 2408 KiB |
| random_24.txt | AC | 86 ms | 2516 KiB |
| random_25.txt | AC | 86 ms | 2488 KiB |
| random_26.txt | AC | 86 ms | 2496 KiB |
| random_27.txt | AC | 88 ms | 2528 KiB |
| random_28.txt | AC | 86 ms | 2536 KiB |
| random_29.txt | AC | 85 ms | 2552 KiB |
| random_30.txt | AC | 85 ms | 2524 KiB |
| random_31.txt | AC | 85 ms | 2492 KiB |
| random_32.txt | AC | 90 ms | 2488 KiB |
| random_33.txt | AC | 86 ms | 2488 KiB |
| random_34.txt | AC | 85 ms | 2496 KiB |
| random_35.txt | AC | 85 ms | 2520 KiB |
| random_36.txt | AC | 86 ms | 2468 KiB |
| random_37.txt | AC | 85 ms | 2452 KiB |
| random_38.txt | AC | 89 ms | 2332 KiB |
| random_39.txt | AC | 85 ms | 2604 KiB |
| sample_01.txt | AC | 85 ms | 2472 KiB |
| sample_02.txt | AC | 85 ms | 2404 KiB |
| sample_03.txt | AC | 84 ms | 2524 KiB |
| sample_04.txt | AC | 85 ms | 2472 KiB |