本题数据太水,在后缀数组做法中,若check时暴力左右拓展位置check,复杂度 O(n2),可以通过此题(并拿下loj上的最优解)。
所以用以下的程序制造的 hack 数据可以使这种做法无法通过:
#include<bits/stdc++.h>
using namespace std;
int n=100000,m=100000;
int main(){
freopen("_.in","w",stdout);
cout<<n<<' '<<m<<'\n';
for(int i=1;i<=n;i++){
cout<<'a';
}cout<<'\n';
for(int i=1;i<=m;i++){
cout<<"1 10000 1 100000\n";
}
}