Skip to content

Commit 5fef641

Browse files
author
Mehran
committed
Some minor changes
1 parent 0c125e2 commit 5fef641

File tree

3 files changed

+12
-27
lines changed

3 files changed

+12
-27
lines changed

handy-algorithms/fastPow.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,9 @@
55

66

77
ll pw(ll a, ll b) {
8-
if (b == 0) {
9-
return 1;
10-
}
11-
8+
if (b == 0) return 1;
129
ll v = pw(a, b / 2);
13-
v = (v * v) % MOD;
14-
15-
if (b & 1) {
16-
v = (v * a) % MOD;
17-
}
18-
10+
v = (v * v) % mod;
11+
if (b & 1) v = (v * a) % mod;
1912
return v;
2013
}

string-processing/z.cpp

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
1-
// z function returns an array of size |s| which i'th number shows size of longest prefix of t starting from this index of s
2-
// O(|s| + |t|)
3-
4-
// t is the pattern you are looking for in s
5-
vi zf(string s, string t) {
6-
int n = s.size(), m = t.size();
7-
s = t + '#' + s;
8-
vi z(n + m + 1);
9-
int l = 0, r = 1;
10-
for (int i = 1; i <= n + m; i++) {
11-
if (i < r) z[i] = min(z[i - l], r - i);
12-
while (i + z[i] <= n + m && s[i + z[i]] == s[z[i]]) z[i]++;
13-
if (i + z[i] > r)
14-
tie(l, r) = ii(i, i + z[i]);
1+
vi z_function(string s) {
2+
int n = s.size();
3+
vi z(n);
4+
for (int i = 1, l = 0, r = 0; i < n; ++i) {
5+
if (i <= r) z[i] = min (r - i + 1, z[i - l]);
6+
while (i + z[i] < n && s[z[i]] == s[i + z[i]]) ++z[i];
7+
if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;
158
}
16-
vi ret_z(n);
17-
forn(i, n) ret_z[i] = z[i + m + 1];
18-
return ret_z;
9+
return z;
1910
}

template.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ typedef vector<vii> vvii;
2525
#define all(a) (a).begin(), (a).end()
2626
#define inf 1000000000
2727
#define eps 1e-9
28+
mt19937 rng32(chrono::steady_clock::now().time_since_epoch().count());
2829

2930
int main() {
3031
ios::sync_with_stdio(0);

0 commit comments

Comments
 (0)