QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#876990#9901. 匹配linlexiao100 ✓6ms13112kbC++142.6kb2025-01-31 16:44:572025-01-31 16:44:58

Judging History

This is the latest submission verdict.

  • [2025-01-31 16:44:58]
  • Judged
  • Verdict: 100
  • Time: 6ms
  • Memory: 13112kb
  • [2025-01-31 16:44:57]
  • Submitted

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,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

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