QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#858598 | #2902. Shortest Missing Subsequences | Teapot# | AC ✓ | 233ms | 16608kb | C++20 | 2.5kb | 2025-01-16 19:34:26 | 2025-01-16 19:34:31 |
Judging History
answer
/** gnu specific **/
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
/** contains everything I need in std **/
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define sz(S) ((int)S.size())
#define FOR(i, st_, n) for(int i = st_; i < n; ++i)
#define RFOR(i, n, end_) for(int i = (n)-1; i >= end_; --i)
#define x first
#define y second
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
typedef pair<double, double> pdd;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ull, ull> pull;
using namespace __gnu_pbds;
typedef tree<ll, null_type, less<>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
using namespace std;
#ifdef ONPC
mt19937 rnd(228);
#else
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
#endif
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string al;
cin >> al;
string s;
cin >> s;
vector<vector<ll>> ar(26);
vector<ll> ye(26,0);
FOR(i,0,26)
if(al.find('a'+i) != string::npos)
ye[i] = 1;
ll n = sz(s);
FOR(i,0,n)
{
ar[s[i]-'a'].pb(i);
}
ll res = 0;
ll cur = -1;
bool t = false;
while(true)
{
res++;
ll cur1 = 0;
vector<ll> next(26,-1);
FOR(i,0,26)
{
if(ye[i] == 0)
continue;
if(lower_bound(ar[i].begin(),ar[i].end(),cur+1)!= ar[i].end())
cur1 = max(cur1,ar[i][lower_bound(ar[i].begin(),ar[i].end(),cur+1)-ar[i].begin()]);
else
t = true;
}
cur = cur1;
if(t)
break;
}
ll q = 0;
cin >> q;
FOR(i,0,q)
{
string s1;
cin >> s1;
if(sz(s1)!= res){
cout << 0 << endl;
continue;
}
t = true;
cur = -1;
FOR(j,0,sz(s1))
{
ll l = s1[j]-'a';
if(lower_bound(ar[l].begin(),ar[l].end(),cur+1) != ar[l].end())
cur = ar[l][lower_bound(ar[l].begin(),ar[l].end(),cur+1)-ar[l].begin()];
else{
t = false;
break;
}
}
if(!t)
cout << '1' << endl;
else
cout << '0' << endl;
}
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3712kb
input:
abcd abcccabac 3 cbb cbba cba
output:
0 0 0
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
z zzzzzzz 10 z zz zzz zzzz zzzzz zzzzzz zzzzzzz zzzzzzzz zzzzzzzzz zzzzzzzzzz
output:
0 0 0 0 0 0 0 1 0 0
result:
ok 10 lines
Test #3:
score: 0
Accepted
time: 84ms
memory: 16608kb
input:
abcdefghijklmnopqrstuvwxyz oaxsgfhkwuecvdrltjzpqibnymtaympfvuzogrqkwhbdcsjleixnojmletqrbkdzfhawpsxcvyniughnqibtzjpewovluyrdfmakxscgcyhmqbieontgwufalzjsprvkdxzfqsrijldncaphwxyutbgevmokltvqhkprunydecwmgxoijzbfsacafhozxyljvnrmbdupeqiswgtkbhwxptqayglfovirnjuemkdczsmyadiqnwtxjbhlsvokpucgefrzvicbdnkrjmxgf...
output:
0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
result:
ok 26 lines
Test #4:
score: 0
Accepted
time: 233ms
memory: 15296kb
input:
d dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd...
output:
1
result:
ok single line: '1'
Test #5:
score: 0
Accepted
time: 4ms
memory: 15968kb
input:
abcdefghijklmnopqrstuvwxyz wktxlbgnmkyuvhmjpxxfndhdtcqugxnsvpxdictbxwrimocjliqqxfomlwngbvyoyacswksvurqaqmvwigtiswbfyofgvdvolcciwnymchohsdoivyofupophlcpukipgheeveaqrgmbcrtdwdybwcxsyvorkvsnhnvgwfxrpvykphlmrqsyujciqdmpqiwegathdsfjueilvbcudwsfbvpqxyoprbadqepvpdkcjvdapafesdmftubyraolqcvgbfbqhjlebnmbpcskf...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 ...
result:
ok 10000 lines
Test #6:
score: 0
Accepted
time: 5ms
memory: 15964kb
input:
abcdefghijklmnopqrstuvwxyz wktxlbgnmkyuvhmjpxxfndhdtcqugxnsvpxdictbxwrimocjliqqxfomlwngbvyoyacswksvurqaqmvwigtiswbfyofgvdvolcciwnymchohsdoivyofupophlcpukipgheeveaqrgmbcrtdwdybwcxsyvorkvsnhnvgwfxrpvykphlmrqsyujciqdmpqiwegathdsfjueilvbcudwsfbvpqxyoprbadqepvpdkcjvdapafesdmftubyraolqcvgbfbqhjlebnmbpcskf...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 ...
result:
ok 10000 lines
Test #7:
score: 0
Accepted
time: 146ms
memory: 14476kb
input:
abcdefghijklmnopqrstuvwxyz ngmgaeihgmnehfjdicecmbjmeilmjceblbnkfhibfgfjkdihhnieamiablnglnmkkajhnnfdlflnbdjddmcmihbbfihbeielbifnidmjijehbjmgfjdecdncajkehbbkmccanblnikgnlieimdndkjngjehhkklmfbfjbhjkfnddalebldfmcfgnabmcnldanjkijkbabkdjnjbgbfnbajadclbhdlmakaigjbnebdbkefgcaihajblgdeflhnjclkdmamkcncfiebjhk...
output:
1 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 ...
result:
ok 1000000 lines
Test #8:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
abcd aabcdacbacdabcabdcccbddadbcdbacbdad 8 dddaadda dddaaddb dddaaddc dddaaddd dddaadaa dddaadab dddaadac dddaadad
output:
0 0 0 0 0 0 0 0
result:
ok 8 lines
Test #9:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
f f 2 f ff
output:
0 1
result:
ok 2 lines
Test #10:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
xy x 6 x y xx xy yx yy
output:
0 1 0 0 0 0
result:
ok 6 lines
Test #11:
score: 0
Accepted
time: 50ms
memory: 14556kb
input:
abcdefghijklmnopqrstuvwxyz irxwwhliqvpptnwkhqgyxopsvwguplvwksziymgggtrgzynukovgrkwpzqrknkukvpzmzgoxzrztijtvymivmyvuqzoqxzujmlsyqxzqosxgqlvwootjnryuwuvnhptqiwjqxonqvgpgmuxsssotjjqkgwkrzyrkoqnzxsnpzltrsvgowxxyzvqwiqwrkozhqynrrkzqoqxnongrrtwsmpsgwktjrsjyhwrwxxzlgxzuhhygpgvvllliwtjnmhjjlrzjtltumpumqpigm...
output:
0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 ...
result:
ok 200000 lines
Test #12:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
abcdefghijklmnopqrstu orslbpmouunpnnfcgtbplsqimmroonbfbgoehmkohbdekngpkkudgpeknramojnffimsborgoheggfshaqrhteepcmchqdtsu 1 au
output:
0
result:
ok single line: '0'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
ab aab 1 bb
output:
1
result:
ok single line: '1'
Test #14:
score: 0
Accepted
time: 1ms
memory: 3712kb
input:
ab ba 1 bb
output:
1
result:
ok single line: '1'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
abc baaaaac 1 cc
output:
1
result:
ok single line: '1'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
abc abcccabac 3 cbb cbba cba
output:
1 0 0
result:
ok 3 lines