题目链接 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<queue> using namespace std; #define int long long const int N = 410 , mod = 1e9+7; int id[N]; void solve() { memset(id,0,sizeof id); int n;cin>>n; string s;cin>>s;s=" "+s; map<string,vector<int> >mp; for(int i=1;i<=n;i++) { for(int j=1;j+i-1<=n;j++) { string t=s.substr(i,j); mp[t].push_back(i); } } int res=0; for(auto [s,v] : mp) { for(auto x : v) for(int i=x+1;i<=n;i++)(res+=id[i])%=mod; for(auto x : v)id[x]++; } cout<<res%mod<<'\n'; } signed main() { int T;cin>>T; while(T--)solve(); }