Skip to content

Commit 56a32cc

Browse files
authored
Golf (#207)
* various golf's * bump clang version * trying this * fix * fix * another fix * make this consistent * for consistency * again for consistency
1 parent d07ad8b commit 56a32cc

16 files changed

Lines changed: 63 additions & 56 deletions

.github/workflows/programming_team_code_ci.yml

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,35 @@ jobs:
3535
runs-on: ubuntu-latest
3636
steps:
3737
- uses: actions/checkout@v4
38-
- name: Set up LLVM repository
38+
- name: Install LLVM
3939
run: |
40-
sudo apt update
41-
sudo apt install -y wget software-properties-common
42-
wget -O - https://apt.llvm.org/llvm.sh | sudo bash
40+
wget https://apt.llvm.org/llvm.sh
41+
chmod +x llvm.sh
42+
sudo ./llvm.sh 22
4343
- name: Install dependencies
44-
run: sudo apt update && sudo apt install -y clang-format-19 cppcheck
44+
run: sudo apt install -y clang-format-22 cppcheck
45+
- name: Verify
46+
run: |
47+
clang-22 --version
48+
clang-format-22 --version
4549
- name: grep, clang-format, cppcheck
4650
run: make --directory=tests/ grep_clangformat_cppcheck
4751

4852
clangtidy:
4953
runs-on: ubuntu-latest
5054
steps:
5155
- uses: actions/checkout@v4
52-
- name: Set up LLVM repository
56+
- name: Install LLVM
5357
run: |
54-
sudo apt update
55-
sudo apt install -y wget software-properties-common
56-
wget -O - https://apt.llvm.org/llvm.sh | sudo bash
58+
wget https://apt.llvm.org/llvm.sh
59+
chmod +x llvm.sh
60+
sudo ./llvm.sh 22
5761
- name: Install dependencies
58-
run: sudo apt update && sudo apt install -y clang-tidy-19
62+
run: sudo apt install -y clang-tidy-22
63+
- name: Verify
64+
run: |
65+
clang-22 --version
66+
clang-tidy-22 --version
5967
- name: clang-tidy
6068
run: make --directory=tests/ clangtidy
6169

@@ -70,10 +78,14 @@ jobs:
7078
runs-on: ubuntu-latest
7179
steps:
7280
- uses: actions/checkout@v4
73-
- name: Set up LLVM repository
74-
run: wget -qO- https://apt.llvm.org/llvm.sh | sudo bash -s -- 19
75-
- name: Install dependencies
76-
run: sudo apt update && sudo apt install -y clang-19
81+
- name: Install LLVM
82+
run: |
83+
wget https://apt.llvm.org/llvm.sh
84+
chmod +x llvm.sh
85+
sudo ./llvm.sh 22
86+
- name: Verify
87+
run: |
88+
clang-22 --version
7789
- name: g++ with clang
7890
run: make --directory=tests/ compile_clang
7991

@@ -88,12 +100,17 @@ jobs:
88100
runs-on: ubuntu-latest
89101
steps:
90102
- uses: actions/checkout@v4
91-
- name: Install texlive, rename, nodejs, npm, clang
103+
- name: Install texlive, rename, nodejs, npm
92104
run: |
93-
sudo apt update
94105
sudo apt install texlive texlive-latex-extra rename nodejs npm
95-
wget -qO- https://apt.llvm.org/llvm.sh | sudo bash -s -- 19
96-
sudo apt update && sudo apt install -y clang-19
106+
- name: Install LLVM
107+
run: |
108+
wget https://apt.llvm.org/llvm.sh
109+
chmod +x llvm.sh
110+
sudo ./llvm.sh 22
111+
- name: Verify
112+
run: |
113+
clang-22 --version
97114
- name: build pdf
98115
run: make --directory=tests/ build_pdf
99116
- uses: actions/upload-artifact@v4
@@ -125,13 +142,17 @@ jobs:
125142
if: github.ref == 'refs/heads/dev' && github.event_name == 'push'
126143
steps:
127144
- uses: actions/checkout@v4
128-
- name: Set up LLVM repository
145+
- name: Install LLVM
129146
run: |
130-
sudo apt update
131-
sudo apt install -y wget software-properties-common
132-
wget -O - https://apt.llvm.org/llvm.sh | sudo bash
147+
wget https://apt.llvm.org/llvm.sh
148+
chmod +x llvm.sh
149+
sudo ./llvm.sh 22
133150
- name: Install dependencies
134-
run: sudo apt update && sudo apt install -y clang-format-19
151+
run: sudo apt install -y clang-format-22 cppcheck
152+
- name: Verify
153+
run: |
154+
clang-22 --version
155+
clang-format-22 --version
135156
- name: Combine includes and force push to main branch
136157
run: |
137158
git config --local user.name github-actions

library/loops/chooses.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
//! @time O(n choose k)
66
//! @space O(1)
77
for (int mask = (1 << k) - 1; mask < (1 << n);
8-
mask = next_subset(mask))
8+
mask = next_subset(mask))

library/loops/submasks.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
//! of every mask of size n
66
//! @space O(1)
77
for (int submask = mask; submask;
8-
submask = (submask - 1) & mask)
8+
submask = (submask - 1) & mask)

library/loops/supermasks.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
//! of every mask of size n
77
//! @space O(1)
88
for (int supermask = mask; supermask < (1 << n);
9-
supermask = (supermask + 1) | mask)
9+
supermask = (supermask + 1) | mask)

library/math/matrix_related/solve_linear_mod.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ struct solve_linear_mod {
1818
rep(i, 0, n) mat[i].push_back(rhs[i]);
1919
tie(rank, det) = row_reduce(mat, m);
2020
if (any_of(rank + all(mat),
21-
[](vi& v) { return v.back(); })) {
21+
[](vi& v) { return v.back(); }))
2222
return;
23-
}
2423
sol.resize(m);
2524
int j = 0;
2625
for_each(begin(mat), begin(mat) + rank, [&](vi& v) {

library/trees/centroid_decomp.hpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,7 @@ void centroid(auto& g, auto f) {
2222
w = u, u = *big_ch;
2323
}
2424
f(u, p);
25-
for (int v : g[u]) {
26-
iter_swap(ranges::find(g[v], u), rbegin(g[v]));
27-
g[v].pop_back();
28-
dfs(dfs, v, u);
29-
}
25+
for (int v : g[u]) erase(g[v], u), dfs(dfs, v, u);
3026
};
3127
dfs(dfs, 0, -1);
3228
}

library/trees/edge_cd.hpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,16 @@ template<class G> void edge_cd(vector<G>& g, auto f) {
2424
if (c != -1) return c;
2525
siz[u] += siz[v];
2626
}
27-
return 2 * siz[u] > m
28-
? p >= 0 && (siz[p] = m + 1 - siz[u]),
29-
u : -1;
27+
return 2 * siz[u] > m ? siz[p] = m + 1 - siz[u],
28+
u : -1;
3029
};
3130
auto dfs = [&](auto&& dfs, int u, int m) -> void {
3231
if (m < 2) return;
33-
u = cent(cent, u, -1, m);
32+
u = cent(cent, u, u, m);
3433
int sum = 0;
3534
auto it = partition(all(g[u]), [&](int v) {
3635
ll x = sum + siz[v];
37-
return x * x < m * (m - x) ? sum += siz[v], 1 : 0;
36+
return x * x < m * (m - x) ? sum = x : 0;
3837
});
3938
f(u, it - begin(g[u]));
4039
G oth(it, end(g[u]));

library/trees/hld.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ template<bool VALS_EDGES> struct HLD {
1616
HLD(auto& g): n(sz(g)), p(n), siz(n, 1), rt(n), tin(n) {
1717
auto dfs1 = [&](auto&& dfs1, int u) -> void {
1818
for (int& v : g[u]) {
19-
iter_swap(ranges::find(g[v], u), rbegin(g[v]));
20-
g[v].pop_back();
21-
p[v] = u;
19+
erase(g[v], p[v] = u);
2220
dfs1(dfs1, v);
2321
siz[u] += siz[v];
2422
if (siz[v] > siz[g[u][0]]) swap(v, g[u][0]);

library/trees/shallowest_decomp_tree.hpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ void shallowest(auto& g, auto f) {
2424
for (const vi& vec : order | views::reverse)
2525
for (int u : vec) {
2626
f(u);
27-
for (int v : g[u])
28-
iter_swap(ranges::find(g[v], u), rbegin(g[v])),
29-
g[v].pop_back();
27+
for (int v : g[u]) erase(g[v], u);
3028
}
3129
}

tests/library_checker_aizu_tests/trees/edge_cd_reroot_dp.test.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,12 @@ int main() {
8181
dfs(dfs, adj[cent][i], cent, {b[e_id], c[e_id]},
8282
{b[e_id], c[e_id]}, i < split);
8383
}
84-
for (int side = 0; side < 2; side++) {
85-
for (
86-
auto [u, curr_b, curr_c] : all_backwards[side]) {
84+
for (int side = 0; side < 2; side++)
85+
for (auto [u, curr_b, curr_c] : all_backwards[side])
8786
res[u] =
8887
(res[u] + 1LL * curr_b * sum_forward[!side] +
8988
1LL * curr_c * cnt_nodes[!side]) %
9089
mod;
91-
}
92-
}
9390
});
9491
swap(base_adj, adj);
9592
{

0 commit comments

Comments
 (0)