题意就不多说了。
要点1:稳定排序对于此题来说需要对类排序,用到sort函数,并且需要自己定义一个bool函数。
要点2:对结构体排序是对其公共变量逆序数排序的,所以要算逆序数。
对于sort函数:此网站有详细的解释。
#include<iostream>
#include<algorithm>
using namespace std;
class DNA
{
public:
char a[100];
int num; //逆序数
};
bool cmp(DNA n,DNA m)
{
return n.num<m.num;
}
int main()
{
int n,m;
DNA str[100];
while(cin>>n>>m)
{
int i;
for(i = 0;i < m; i++)
cin>>str[i].a;
for(i = 0;i < m; i++) //三重循环计算逆序数
{
int j,sum = 0;
for(j = 0;j < n-1; j++)
for(int X = j+1;X < n; X++)
if(str[i].a[j]>str[i].a[X])sum++;
str[i].num = sum;
}
sort(str,str+m,cmp);
for(i = 0;i < m; i++)
cout<<str[i].a<<endl;
}
return 0;
}

博客内容介绍了如何应用稳定排序解决POJ 1007问题,重点在于理解稳定排序的概念,并自定义bool函数配合sort函数对类进行排序。此外,还提到了需要计算结构体中变量的逆序数。推荐查看提供的sort函数详解链接以了解更多细节。
874

被折叠的 条评论
为什么被折叠?



