题意:
1e5字符串,问你正反序大小相反的字符串对数
#includeusing namespace std;const int N=1e5+10;int n,rid,a[N*10][27],f[N*10];long long ans;string s[N];void update(int x){ int l=s[x].length(),now=0; for(int i=l-1;i>=0;i--) { if(!a[now][s[x][i]-'a']) a[now][s[x][i]-'a']=++rid; now=a[now][s[x][i]-'a']; f[now]++; }}void query(int x){ int l=s[x].length(),now=0; for(int i=l-1;i>=0;i--) { for(int j=s[x][i]-'a'+1;j<26;j++) ans+=f[a[now][j]]; now=a[now][s[x][i]-'a']; } for(int i=0;i<26;i++) ans+=f[a[now][i]];}int main(){ scanf("%d",&n); for(int i=0;i >s[i]; sort(s,s+n); for(int i=0;i