简单题,直接暴力计算,注意PE错误就行了。
#include<iostream>
#include<algorithm>
using namespace std;
struct Node{
string dna;
int index;
int measure;
bool operator < (const Node &b) const
{
if(measure==b.measure) return index<b.index;
else return measure<b.measure;
}
}st[101];
int n,m;
int Cal(string a)
{
int i,j;
int num=0;
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
{
if(a[i]>a[j]) num++;
}
}
return num;
}
int main()
{
int N;
cin>>N;
for(int k=0; k<N; k++){
cin>>n>>m;
for(int i=0; i<m; i++)
{
st[i].index=i;
cin>>st[i].dna;
st[i].measure=Cal(st[i].dna);
}
sort(st,st+m);
for(int i=0; i<m; i++)
cout<<st[i].dna<<endl;
if(k<N-1) cout<<endl;
}
return 0;
}