QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#831575#8701. Bordertangshiqing23 1ms10120kbC++141.4kb2024-12-25 15:31:442024-12-25 15:31:52

Judging History

你现在查看的是最新测评结果

  • [2024-12-25 15:31:52]
  • 评测
  • 测评结果:23
  • 用时:1ms
  • 内存:10120kb
  • [2024-12-25 15:31:44]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define ull unsigned long long
using namespace std;
const int N=2000010,P=131;
char s[N],t[N];
int n,ans[N],awa;
ull h_s[N],h_t[N],p[N];
bool same[N];
ull sub(int l,int r){return h_s[r]-h_s[l-1]*p[r-l+1];}
bool change(int len,int pos){
    ull pre=sub(1,len),suf=sub(n-len+1,n);
    if(1<=pos&&pos<=len)
        pre=pre-p[len-pos]*s[pos]+p[len-pos]*t[pos];
    if(n-len+1<=pos&&pos<=n)
        suf=suf-p[n-pos]*s[pos]+p[n-pos]*t[pos];
    if(pre==suf) return 1;
    return 0;
}
signed main(){
    scanf("%s%s",s+1,t+1);
    n=strlen(s+1);
    p[0]=1;
    for(int i=1;i<=n;i++){
        h_s[i]=h_s[i-1]*P+s[i];
        p[i]=p[i-1]*P;
    }
    for(int i=1;i<=n;i++){
        if(sub(1,i)==sub(n-i+1,n)){
            same[i]=1;
            if(i!=n) awa=i;
            continue;
        }
        int l=1,r=i;
        while(l<r){
            int mid=l+r>>1;
            if(sub(1,mid)!=sub(n-i+1,n-i+mid)) r=mid;
            else l=mid+1;
        }
        if(change(i,l)) ans[l]=max(ans[l],i);
        if(change(i,n-i+l)) ans[n-i+l]=max(ans[n-i+l],i);
    }
    int lst=0;
    for(int i=1;i<=n;i++){
        if(s[i]==t[i]){ans[i]=awa;continue;}
        if(i*2<=n||i*2==n+1){
            ans[i]=max(ans[i],lst);
            ans[n-i+1]=max(ans[n-i+1],lst);
        }
        if(i*2<=n&&same[i]) lst=i;
    }
    for(int i=1;i<=n;i++) printf("%lld\n",ans[i]);
    return 0;
}

详细

Subtask #1:

score: 23
Accepted

Test #1:

score: 23
Accepted
time: 1ms
memory: 10108kb

input:

cbaababaabacbaababaabacbaabacbaababaabacbaaba
dabbababbabaabbafabbgbaabfebaabzababbayaabcac

output:

0
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
17
17
17
17
17
17
17
17
17
17
17
6
6
6
6
6
6
6
6
6
6
6
0
0
0
3
0
1

result:

ok 45 numbers

Test #2:

score: 23
Accepted
time: 1ms
memory: 9984kb

input:

cbaababaabacbaabadbaababaabacbaabacbaaba
aabwaxjbbabtalbabcasbabibbabaabbabaabiac

output:

3
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
23
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
0
0
0
0
0
1

result:

ok 40 numbers

Test #3:

score: 23
Accepted
time: 1ms
memory: 10040kb

input:

cadaabacabacabacabaabacabacadaabacabacaba
bbbbbabtbabababalalbawababababbaoababebdc

output:

2
0
4
0
0
0
0
0
0
0
0
0
0
0
0
15
15
15
15
15
15
15
15
15
15
15
0
0
0
0
0
0
0
0
0
0
0
0
0
4
1

result:

ok 41 numbers

Test #4:

score: 23
Accepted
time: 0ms
memory: 7900kb

input:

dabacbaadcbaadabacbaadabecbaadcbaadabacbaadabacbaa
ababaabbyaarbabfbvdbuaoaaaabbaaabbababaabbababqadd

output:

2
0
0
0
0
0
0
0
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
29
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
0
0
0
0
0
0
2
1

result:

ok 50 numbers

Test #5:

score: 23
Accepted
time: 1ms
memory: 10000kb

input:

edacbcacacbcaecbcacacbcadacbcacacbca
sabaaabtbaaabaaalblbawaeabaaababoaae

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
1

result:

ok 36 numbers

Test #6:

score: 23
Accepted
time: 1ms
memory: 9920kb

input:

cbaababaabacbaabacbaabdbaabacbaabacbaaba
aabbababbaoaabbxbaabbaqabbabltbpagaabcac

output:

3
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
0
0
0
3
0
1

result:

ok 40 numbers

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #7:

score: 31
Accepted
time: 1ms
memory: 10120kb

input:

abacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacababacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacaecabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacababacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacad...

output:

27
0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75...

result:

ok 4623 numbers

Test #8:

score: 0
Wrong Answer
time: 1ms
memory: 9976kb

input:

gcdcbcacacacbcacdcbcacaedcbcacacacbcacdcfcacacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacagcdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcaca...

output:

187
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
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
0
0
0
0
...

result:

wrong answer 2199th numbers differ - expected: '508', found: '0'

Subtask #3:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%