QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#876990 | #9901. 匹配 | linlexiao | 100 ✓ | 6ms | 13112kb | C++14 | 2.6kb | 2025-01-31 16:44:57 | 2025-01-31 16:44:58 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using ll=long long;using ull=unsigned long long;using pii=pair<int,int>;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define unq(x) (x).erase(unique(all((x))),(x).end())
#define YES cout << "YES\n"
#define NO cout << "NO\n"
#define Yes cout << "Yes\n"
#define No cout << "No\n"
#define mem0(x) memset((x),0,sizeof(x))
template<typename T>
ostream& operator<<(ostream& os, const vector<T>& data){
for(int i=0;i<data.size();i++)os<<data[i]<<' ';
return os;
}
#ifndef ONLINE_JUDGE
#include "template/cpp-dump/cpp-dump.hpp"
#define debug(...) cpp_dump(__VA_ARGS__)
namespace cp = cpp_dump;
CPP_DUMP_SET_OPTION_GLOBAL(max_line_width, 80);
CPP_DUMP_SET_OPTION_GLOBAL(log_label_func, cp::log_label::filename());
CPP_DUMP_SET_OPTION_GLOBAL(enable_asterisk, true);
#ifdef NO_COLOR
CPP_DUMP_SET_OPTION_GLOBAL(es_style, cp::types::es_style_t::no_es);
#endif // NO_COLOR
#else
#define debug(...)
#define CPP_DUMP_SET_OPTION(...)
#define CPP_DUMP_DEFINE_EXPORT_OBJECT(...)
#define CPP_DUMP_DEFINE_EXPORT_OBJECT_GENERIC(...)
#define CPP_DUMP_DEFINE_EXPORT_ENUM(...)
#define CPP_DUMP_DEFINE_EXPORT_ENUM_GENERIC(...)
#endif // ONLINE_JUDGE
const int N = 1e6+5;
int nxt[N];
char s[N],p[N];
char news[N*2];
int z[N];
int main(){
ios::sync_with_stdio(0);cin.tie(0);
cout<<fixed;
cin >> s >> p;
int n = strlen(s);
int pos = n-1;
while(pos>=0 && p[pos]!='1')--pos;
if(pos==-1){
if(s[0]=='z')s[0]='a';
else s[0]='z';
cout << s << '\n';
return 0;
}
int tot = 0;
for(int i=pos;i<n;i++)news[tot++]=s[i];
news[tot++]='-';
for(int i=0;i<n;i++)news[tot++]=s[i];
for(int l=0,r=0,i=1;i<tot;i++){
if(i<=r)z[i]=min(z[i-l],r-i+1);
while(i+z[i]<tot && news[i+z[i]]==news[z[i]])++z[i];
if(i+z[i]-1>r)l=i,r=i+z[i]-1;
}
// debug(news);
int l=1,r=n-pos;
for(int i=0;i<n;i++){
debug(i,i+n-pos+1,z[i+n-pos+1]);
if(p[i]=='0'){
l = max(l, z[i+n-pos+1]+1);
}
else{
r = min(r, z[i+n-pos+1]);
}
}
// debug(l,r);
if(l<=r){
for(int i=0;i<l;i++)cout<<s[pos+i];
cout<<'\n';
}
else{
cout << -1 << '\n';
}
return 0;
}
/*
1. 除非你明确需要元素去重,不要使用set,使用multiset。
2. 用multiset的时候,高智商人士不会直接erase
3. 用cout输出浮点数的时候,先切到fixed模式
4. 如果RE,记得检查vector的越界
5. dijkstra不加vis数组结果对但是复杂度错
*/
这程序好像有点Bug,我给组数据试试?
详细
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 0ms
memory: 7776kb
input:
baaaaaaaaa 0111111110
output:
aa
result:
ok Correct output: valid string T.
Test #2:
score: 10
Accepted
time: 0ms
memory: 7776kb
input:
abbabbabab 0100100000
output:
bb
result:
ok Correct output: valid string T.
Test #3:
score: 10
Accepted
time: 0ms
memory: 7908kb
input:
abbabaabba 0000000000
output:
zbbabaabba
result:
ok Correct output: valid string T.
Test #4:
score: 10
Accepted
time: 0ms
memory: 9824kb
input:
trtrttrtrttrttrtrttrtrttrttrtrttrttrtrttrtrttrttrtrtnrtrttrtkrtrttrttrtrttrtrttrttrtrttrttetrttrtrtt 0000000000001000000000000000000001000000000000000000000000000000000100000000000000000000000000000000
output:
ttrtrttrtr
result:
ok Correct output: valid string T.
Test #5:
score: 10
Accepted
time: 0ms
memory: 9948kb
input:
bcljjabnbcljjabnbcljjagnbcljjabnbcljjabnbcljjabnbcljjahnbcljjabnbcljjabnbcljjabnbcljjabnbcljjabnbclj 0000000000000000000000010000000100000000000000000000000100000001000000000000000100000000000000000000
output:
-1
result:
ok Correct output: -1
Test #6:
score: 10
Accepted
time: 0ms
memory: 7776kb
input:
muumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuumummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuummuumummuummumuumummumuummuumummumuumummuummumuumummumuummvumummuummumuummuumummumuumummuummumuumummumuummuumummumuumummuummumuummuumummuummu...
output:
mmuumummumuumummuummumuumummumuummuumummuummumuummuumummumuumummuummumuumu
result:
ok Correct output: valid string T.
Test #7:
score: 10
Accepted
time: 0ms
memory: 7780kb
input:
mppmppmpmppmppmpmppmpmppmppmpmdpmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppm...
output:
mppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmppmpmppmpmppmppmpmppmpmppmppmpmppmpp
result:
ok Correct output: valid string T.
Test #8:
score: 10
Accepted
time: 6ms
memory: 12660kb
input:
falgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgsh...
output:
falgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgshffalgsh...
result:
ok Correct output: valid string T.
Test #9:
score: 10
Accepted
time: 6ms
memory: 12500kb
input:
cnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaozn...
output:
znacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacnaoznacna...
result:
ok Correct output: valid string T.
Test #10:
score: 10
Accepted
time: 6ms
memory: 13112kb
input:
bvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvov...
output:
bvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbvbvovbv...
result:
ok Correct output: valid string T.
Extra Test:
score: 0
Extra Test Passed