QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#608844 | #7332. Dissertation | HALZOOM | AC ✓ | 610ms | 109876kb | C++14 | 1.1kb | 2024-10-04 06:08:20 | 2024-10-04 06:08:21 |
Judging History
answer
// Author: _Sherbiny
#include "bits/stdc++.h"
#ifdef DBG
#include "./debug.h"
#else
#define dbg(...)
#endif
using namespace std;
typedef long long ll;
#define endl '\n'
///////////////////////////////////
const int oo = 2e9, N = 1001;
vector<array<int, 26>> nxt;
string a, b;
int n, m;
int dp[N][N];
vector<vector<bool>>vis;
int go(int i, int sz) {
if (!sz) return -1;
if (i < 0) return n;
int &res = dp[i][sz];
if (vis[i][sz]) return res;
vis[i][sz] = true;
res = go(i - 1, sz);
int ind = go(i - 1, sz - 1);
ind = nxt[ind + 1][b[i] - 'a'];
return res = min(ind, res);
}
void magic() {
cin >> a >> b;
n = a.size(), m = b.size();
nxt.assign(n + 2, {});
vis.assign(N, vector<bool>(N));
nxt[n].fill(n);
nxt[n + 1].fill(n);
for (int i = n - 1; i >= 0; --i) {
nxt[i] = nxt[i + 1];
nxt[i][a[i] - 'a'] = i;
}
for (int sz = m; sz >= 0; --sz) {
if (go(m - 1, sz) < n) {
cout << sz << endl;
return;
}
}
}
signed main() {
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
while (t--) magic();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3716kb
input:
1 abcdefghijklmnopqrstuvwxyz bbddee
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 610ms
memory: 109876kb
input:
4106 ababbbab babaa aabaaaaa bbbab aababaab bbaab aababbba aaaaa aabbabbb baabb aabababb abbbb aabbabab babaa aaabbaaa aaabb aaababba ababb aabbbaba abaaa abbbaaba bbbab aaaababb aabab abbbaaba abbba abbbabbb bbbaa aaabaaaa aaabb abbababb baaaa aaaababb babbb abaaaaab aabaa ababaaab aabaa abbbabaa b...
output:
4 2 5 4 4 5 4 5 5 4 5 5 5 4 4 3 4 4 5 4 5 5 5 4 4 5 3 3 5 4 4 3 3 5 4 5 4 5 3 2 5 4 3 4 4 5 5 5 5 5 3 4 5 4 4 4 4 5 5 4 5 4 5 5 4 4 5 4 4 4 4 4 5 5 4 5 4 5 5 5 5 5 4 5 4 5 5 5 3 4 4 5 4 1 5 3 3 4 3 5 3 4 4 3 4 3 4 5 5 5 4 5 4 3 4 4 3 3 4 5 4 5 4 5 4 4 5 4 3 5 5 3 5 5 4 5 4 5 4 3 4 4 4 4 4 4 5 5 5 5 ...
result:
ok 4106 numbers