From c05b486033aa4b7f22af729863d669deae481f29 Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Tue, 25 Dec 2018 13:32:08 +0100 Subject: [PATCH] Fix inconsistency in day 23. It works way better when you choose an optimal pivot. --- 2018/benches/days.rs | 3 ++- 2018/loc.svg | 52 ++++++++++++++++++++++---------------------- 2018/src/day23.rs | 2 +- 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/2018/benches/days.rs b/2018/benches/days.rs index 4fcfb09..3d0a4e9 100644 --- a/2018/benches/days.rs +++ b/2018/benches/days.rs @@ -74,10 +74,11 @@ day_bench!(day19, 19); day_bench!(day20, 20); day_bench!(day21, 21); day_bench!(day22, 22); +day_bench!(day23, 23); day_bench!(day25, 25); benchmark_main!(day01, day02, day03, day04, day05, day06, day07, day08, day09, day10, day11, day12, day13, day14, day15, day16, day17, day18, day19, day20, - day21, day22, day25); + day21, day22, day23, day25); diff --git a/2018/loc.svg b/2018/loc.svg index e564f41..3c9cf29 100644 --- a/2018/loc.svg +++ b/2018/loc.svg @@ -32,10 +32,10 @@ z +" id="mc20af521f5" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -71,7 +71,7 @@ z - + @@ -110,7 +110,7 @@ z - + @@ -139,7 +139,7 @@ z - + @@ -153,7 +153,7 @@ z - + @@ -193,7 +193,7 @@ z - + @@ -286,10 +286,10 @@ z +" id="mb7282de85e" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -302,7 +302,7 @@ L -3.5 0 - + @@ -316,7 +316,7 @@ L -3.5 0 - + @@ -331,7 +331,7 @@ L -3.5 0 - + @@ -346,7 +346,7 @@ L -3.5 0 - + @@ -361,7 +361,7 @@ L -3.5 0 - + @@ -577,7 +577,7 @@ z - - - @@ -870,7 +870,7 @@ L 348.72625 83.926688 - + diff --git a/2018/src/day23.rs b/2018/src/day23.rs index 2a1b5c9..e6a8a86 100644 --- a/2018/src/day23.rs +++ b/2018/src/day23.rs @@ -42,7 +42,7 @@ fn bron_kerbosch1(graph: Graph, cliques: &mut Vec, r: &mut NodeSet, p: } let mut p_clone = p.clone(); - let pivot = *p.union(&x).next().unwrap(); + let pivot = *p.union(&x).max_by_key(|&&v| graph[v].len()).unwrap(); for &v in p.difference(&graph[pivot]) { r.insert(v);