QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#454094 | #2668. 论战捆竹竿 | james1BadCreeper | 100 ✓ | 62ms | 25752kb | C++17 | 1.7kb | 2024-06-24 16:31:25 | 2024-06-24 16:31:29 |
Judging History
answer
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
typedef long long i64;
const int N = 5e5 + 5;
int n, nxt[N];
char s[N];
i64 m, ans, a[N], d[N];
void solve(void) {
cin >> n >> m >> s + 1;
for (int i = 2, p = 0; i <= n; ++i) {
while (p && s[i] != s[p + 1]) p = nxt[p];
if (s[i] == s[p + 1]) ++p;
nxt[i] = p;
}
int cur = n, tot = 0;
while (cur) {
cur = nxt[cur];
a[++tot] = n - cur;
}
vector<tuple<int, int, int>> vec;
for (int i = 1, j = 1; i <= tot; ++i) {
j = i;
while (j < tot && a[i + 1] - a[i] == a[j + 1] - a[j]) ++j;
if (i == j) vec.emplace_back(a[i], a[i], 0);
else vec.emplace_back(a[i], a[j], (a[j] - a[i]) / (j - i)), i = j;
}
int cec = a[1]; memset(d, 0x3f, sizeof d);
__gnu_pbds::priority_queue<pair<i64, int>, greater<pair<i64, int>>> Q;
Q.push({0, d[0] = 0});
vector<bool> vis(cec);
while (!Q.empty()) {
auto [w, u] = Q.top(); Q.pop();
if (vis[u]) continue; vis[u] = 1;
for (auto [l, r, k] : vec)
for (int i = l, t = k; i <= r; i += k, t += k) {
i64 v = (u + i) % cec, tmp = w + i;
if (d[v] > tmp) d[v] = tmp, Q.push({d[v], v});
if (d[(u + t) % cec] <= w + t) break;
}
}
i64 ans = 0;
for (int i = 0; i < cec; ++i)
if (d[i] <= m - n) ans += (m - n - d[i]) / cec + 1;
cout << ans << "\n";
}
int main(void) {
ios::sync_with_stdio(0);
int T; cin >> T;
while (T--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 5
Accepted
time: 0ms
memory: 13648kb
input:
5 3 10 aab 6 10 bbbaaa 6 10 aaaaab 3 10 bba 3 10 baa
output:
3 1 1 3 3
result:
ok 5 number(s): "3 1 1 3 3"
Test #2:
score: 5
Accepted
time: 2ms
memory: 10520kb
input:
5 5 20 aabaa 6 20 bbabab 4 20 aaaa 5 20 abbbb 7 20 abbbaba
output:
14 6 17 4 5
result:
ok 5 number(s): "14 6 17 4 5"
Test #3:
score: 5
Accepted
time: 0ms
memory: 10228kb
input:
5 100 1000000000000000000 pubuapdogqmtxofzuvbvugsmeolvkwcszhiyxlzfgzgkcigttarutfmcxazyebvqtxbaaolirkjsysbpeqcnnbmewyiflnfrdxji 100 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 100 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaa...
output:
10000000000000000 999999999999999901 999999999999999832 999999999999999715 0
result:
ok 5 number(s): "10000000000000000 999999999999...9999999832 999999999999999715 0"
Test #4:
score: 5
Accepted
time: 2ms
memory: 11020kb
input:
5 100 1000000000000000000 shzjdvpdipbefflocbzemtahxhqsmsfkgeglhkdlaojllfcuzezkairuyubwvraoehlhzinzeglirkqsellamtfqsjqumokegxzx 100 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 100 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaa...
output:
10000000000000000 999999999999999901 999999999999999838 0 999999999999999847
result:
ok 5 number(s): "10000000000000000 999999999999...9999999838 0 999999999999999847"
Test #5:
score: 5
Accepted
time: 2ms
memory: 9788kb
input:
5 1000 1000000000000000000 yqfvrrdlnfhymfwvujysliaqsnpkkyoinhtkcasjsmmcxzopcuxihrrlphehsymvxsqbwokwpxdlmoewxncojujmzngxgcbijsesyxdbleiekfsgvhvooeqbxqltddskmuqvhopgjjrsaohmhjilifimfybzwchrqconquqqsfuqqqldityagdpgcfsvgbdpumfdalxujcyzhzqyfwriwjgwovydysqfuvbzqetndazvlkgbjzedafrccfizfpkpuqrhstwtadlkhcbhv...
output:
1000000000000000 999999999999999001 999999999999998482 999999999999998098 999999999999997859
result:
ok 5 number(s): "1000000000000000 9999999999999...999999998098 999999999999997859"
Test #6:
score: 5
Accepted
time: 2ms
memory: 10284kb
input:
5 1000 1000000000000000000 pixtqjtglhxfwbonlhwvddksgnuqjswinhunxhghfnuqirqfnnkioeydhkpbrqxkgkplqzheddxmutzvocqconzicazgfmbyztjnppcstvnqavyouodmgkvwhdxihckhyoxcamxqenjughhusufxyiiivadirmdsqbadxkfaekchfvsukwxbkdejyraihqdndthzuvqblixchamwzmhuenyfpetkgljsnrighareizgfvmtlgxeljluwoklcikmaefcsebndhiqbqpeuv...
output:
1000000000000000 999999999999999001 999999999999998488 0 999999999999997533
result:
ok 5 number(s): "1000000000000000 9999999999999...9999998488 0 999999999999997533"
Test #7:
score: 5
Accepted
time: 7ms
memory: 11384kb
input:
5 50000 100000 xudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyh...
output:
10001 24995 6004 34963 0
result:
ok 5 number(s): "10001 24995 6004 34963 0"
Test #8:
score: 5
Accepted
time: 7ms
memory: 12388kb
input:
5 50000 100000 xudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyh...
output:
10001 24994 6004 34969 1009
result:
ok 5 number(s): "10001 24994 6004 34969 1009"
Test #9:
score: 5
Accepted
time: 3ms
memory: 11928kb
input:
5 50000 100000 xudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyh...
output:
10001 24995 6004 34969 1009
result:
ok 5 number(s): "10001 24995 6004 34969 1009"
Test #10:
score: 5
Accepted
time: 3ms
memory: 12264kb
input:
5 50000 100000 xudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyhxudyh...
output:
10001 24997 6004 34963 1007
result:
ok 5 number(s): "10001 24997 6004 34963 1007"
Test #11:
score: 5
Accepted
time: 7ms
memory: 11772kb
input:
5 70000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999894988 499999999999924964 999999999999888298 999999999999533441 999999999999823805
result:
ok 5 number(s): "999999999999894988 49999999999...999999533441 999999999999823805"
Test #12:
score: 5
Accepted
time: 6ms
memory: 11728kb
input:
5 70000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999894988 499999999999934948 999999999999888292 999999999999533441 499999999999927943
result:
ok 5 number(s): "999999999999894988 49999999999...999999533441 499999999999927943"
Test #13:
score: 5
Accepted
time: 12ms
memory: 13056kb
input:
5 100000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999849979 499999999999894861 999999999999838298 499999998750274995 999999999999647812
result:
ok 5 number(s): "999999999999849979 49999999999...998750274995 999999999999647812"
Test #14:
score: 5
Accepted
time: 10ms
memory: 13440kb
input:
5 100000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999849988 499999999999894861 999999999999838292 999999999999369217 499999999999887884
result:
ok 5 number(s): "999999999999849988 49999999999...999999369217 499999999999887884"
Test #15:
score: 5
Accepted
time: 9ms
memory: 16176kb
input:
5 100000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999849976 166666666666641659 999999999999838304 499999998750274995 999999999999719421
result:
ok 5 number(s): "999999999999849976 16666666666...998750274995 999999999999719421"
Test #16:
score: 5
Accepted
time: 14ms
memory: 13228kb
input:
5 100000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999849982 499999999999894839 999999999999838292 999999999999370145 999999999999687718
result:
ok 5 number(s): "999999999999849982 49999999999...999999370145 999999999999687718"
Test #17:
score: 5
Accepted
time: 53ms
memory: 25604kb
input:
5 500000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999249988 249999999999783292 999999999999171633 999999999996226049 999999999998333136
result:
ok 5 number(s): "999999999999249988 24999999999...999996226049 999999999998333136"
Test #18:
score: 5
Accepted
time: 58ms
memory: 25752kb
input:
5 500000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999249979 249999999999783302 999999999999171627 999999999996226049 999999999998649255
result:
ok 5 number(s): "999999999999249979 24999999999...999996226049 999999999998649255"
Test #19:
score: 5
Accepted
time: 62ms
memory: 25616kb
input:
5 500000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999249985 499999999999466547 999999999999171633 999999999996226049 999999999998649207
result:
ok 5 number(s): "999999999999249985 49999999999...999996226049 999999999998649207"
Test #20:
score: 5
Accepted
time: 59ms
memory: 25532kb
input:
5 500000 1000000000000000000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
999999999999249976 249999999999783302 999999999999171645 999999999996226049 999999999998649333
result:
ok 5 number(s): "999999999999249976 24999999999...999996226049 999999999998649333"
Extra Test:
score: 0
Extra Test Passed