按第一篇题解思路打的,哪里有问题?
#include<bits/stdc++.h>
#define N 3005
#define P 51971
#define MOD 114514
#define ll long long
using namespace std;
ll n,t[N*N];
char a[N],b[N];
int main(){
cin>>n>>a+1>>b+1;
for(int i=1;i<=n;i++){
ll v=0,p=1;
for(int j=i;j<=n;j++){
while(p<=n&&a[p]<=b[j])p++;
if(p>n)break;
p++;
v=(1LL*v*P+b[j]-'a'+1)%MOD;
t[++t[0]]=v;
}
}
sort(t+1,t+t[0]+1);
cout<<(unique(t+1,t+t[0]+1)-t-1);
return 0;
}