Skip to content

Commit b7091bd

Browse files
authored
Merge pull request #64 from himkt/cleaning
refactor(tree, rustfmt): move private function below and set max_width to 119
2 parents f65f65f + 693511f commit b7091bd

File tree

7 files changed

+28
-62
lines changed

7 files changed

+28
-62
lines changed

rustfmt.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
max_width = 119

src/collection.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,7 @@ impl<T: Copy> Iterator for Bitset<T> {
2828

2929
pub fn bitset<T: Copy>(a: Vec<T>) -> Bitset<T> {
3030
let len = a.len();
31-
Bitset {
32-
curr: 0,
33-
array: a,
34-
len,
35-
}
31+
Bitset { curr: 0, array: a, len }
3632
}
3733

3834
#[cfg(test)]

src/geometry.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,11 +179,7 @@ pub fn convex_hull(ps: Vec<(i64, i64)>) -> Vec<(i64, i64)> {
179179
k += 1;
180180
}
181181

182-
let mut ret: Vec<(i64, i64)> = deque
183-
.into_iter()
184-
.take(k - 1)
185-
.map(|pair| (pair.0, pair.1))
186-
.collect();
182+
let mut ret: Vec<(i64, i64)> = deque.into_iter().take(k - 1).map(|pair| (pair.0, pair.1)).collect();
187183

188184
ret.sort_unstable();
189185
ret

src/graph.rs

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,7 @@ impl Graph {
5151
}
5252

5353
pub fn connect_with_residual(&mut self, from: usize, to: usize, weight: usize) {
54-
assert!(
55-
self.directed,
56-
"connect_with_residual only works in directed graph."
57-
);
54+
assert!(self.directed, "connect_with_residual only works in directed graph.");
5855

5956
self.graph[from].push((to, weight));
6057
self.out_degrees[from] += 1;
@@ -93,14 +90,7 @@ mod test_graph {
9390
graph.connect(1, 0, 10);
9491
graph.connect(3, 4, 3);
9592

96-
let expected = vec![
97-
vec![(1, 1)],
98-
vec![(0, 10)],
99-
vec![(5, 1)],
100-
vec![(4, 3)],
101-
vec![],
102-
vec![],
103-
];
93+
let expected = vec![vec![(1, 1)], vec![(0, 10)], vec![(5, 1)], vec![(4, 3)], vec![], vec![]];
10494
assert_eq!(graph.graph, expected);
10595

10696
assert!(graph.connected(0, 1));
@@ -260,7 +250,7 @@ impl DepthFirstSearch {
260250

261251
while let Some(node_type) = stack.pop_front() {
262252
match node_type {
263-
NodeType::Forward(u) => {
253+
NodeType::Forward(u) => {
264254
for &(v, _) in self.graph.graph[u].iter() {
265255
if self.seen[v] {
266256
continue;
@@ -408,10 +398,7 @@ mod test_dijkstra {
408398

409399
let mut dijkstra = Dijkstra::new(graph);
410400
dijkstra.search(0);
411-
assert_eq!(
412-
dijkstra.dist,
413-
vec![0, 1, 6, 3, 5, 8, 10, Dijkstra::INF, Dijkstra::INF]
414-
);
401+
assert_eq!(dijkstra.dist, vec![0, 1, 6, 3, 5, 8, 10, Dijkstra::INF, Dijkstra::INF]);
415402

416403
assert_eq!(dijkstra.shortest_path(0, 3), vec![(0, 1), (1, 3)]);
417404
assert_eq!(dijkstra.shortest_path(0, 8), vec![]);
@@ -574,11 +561,7 @@ impl LowestCommonAncestor {
574561
let n = graph.n;
575562
let parents = vec![vec![Self::ROOT; n]; Self::LOGV];
576563
let depth = vec![Self::ROOT; n];
577-
Self {
578-
parents,
579-
depth,
580-
graph,
581-
}
564+
Self { parents, depth, graph }
582565
}
583566

584567
pub fn init(&mut self) {

src/math.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,7 @@ impl SequentialPrimeFactorization {
249249
i += 1;
250250
}
251251

252-
Self {
253-
smallest_prime_factors,
254-
}
252+
Self { smallest_prime_factors }
255253
}
256254

257255
pub fn factorize(&self, mut x: usize) -> Vec<usize> {

src/search.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn lower_bound(range: std::ops::Range<usize>, prop: &dyn Fn(usize) -> bool)
1515
}
1616

1717
match ok.eq(&range.end) {
18-
true => None,
18+
true => None,
1919
false => Some(ok),
2020
}
2121
}

src/tree.rs

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,32 +68,6 @@ impl SegmentTree {
6868
ret
6969
}
7070

71-
fn range_query_recursive(
72-
&self,
73-
op: &Op,
74-
ql: usize,
75-
qr: usize,
76-
sl: usize,
77-
sr: usize,
78-
pos: usize,
79-
) -> i64 {
80-
if qr <= sl || sr <= ql {
81-
return SegmentTree::default(op);
82-
}
83-
if ql <= sl && sr <= qr {
84-
return self.data[pos];
85-
}
86-
87-
let sm = (sl + sr) / 2;
88-
let lv = self.range_query_recursive(op, ql, qr, sl, sm, pos * 2);
89-
let rv = self.range_query_recursive(op, ql, qr, sm, sr, pos * 2 + 1);
90-
match op {
91-
Op::Add => lv + rv,
92-
Op::Max => lv.max(rv),
93-
Op::Min => lv.min(rv),
94-
}
95-
}
96-
9771
pub fn get_range(&self, l: usize, r: usize) -> i64 {
9872
if let Mode::RangeGet(op) = &self.mode {
9973
self.range_query_recursive(op, l, r, 0, SegmentTree::SEQ_LEN, 1)
@@ -154,6 +128,24 @@ impl SegmentTree {
154128
panic!("Mode {:?} is not supported.", &self.mode);
155129
}
156130
}
131+
132+
fn range_query_recursive(&self, op: &Op, ql: usize, qr: usize, sl: usize, sr: usize, pos: usize) -> i64 {
133+
if qr <= sl || sr <= ql {
134+
return SegmentTree::default(op);
135+
}
136+
if ql <= sl && sr <= qr {
137+
return self.data[pos];
138+
}
139+
140+
let sm = (sl + sr) / 2;
141+
let lv = self.range_query_recursive(op, ql, qr, sl, sm, pos * 2);
142+
let rv = self.range_query_recursive(op, ql, qr, sm, sr, pos * 2 + 1);
143+
match op {
144+
Op::Add => lv + rv,
145+
Op::Max => lv.max(rv),
146+
Op::Min => lv.min(rv),
147+
}
148+
}
157149
}
158150

159151
#[cfg(test)]

0 commit comments

Comments
 (0)