POJ 1007 DNA Sorting

来源:互联网 发布:php就业形势 编辑:程序博客网 时间:2024/05/24 01:49

【题意】给定m个字符串,给个长度为n,按照逆序对从小到大排序输出

(0<n<=50,0<m<=100)

【分析】无,直接暴力,简单题就懒得标时间复杂度了,假如用O(n log n)的逆序对求法(归并排序 or 那几种树)也是可以的。

【代码】

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <algorithm>


using namespace std;


const int N=80;

const int M=400;


struct S

{

char s[N];

int cnt;

}q[M];

int n,m;


int cmp(S a,S b)

{

return a.cnt<b.cnt;

}


int main(void)

{

scanf("%d%d",&n,&m);

for (int i=1;i<=m;i++)

{

scanf("%s",q[i].s);

for (int j=0;j<n-1;j++)

for (int k=j+1;k<n;k++) q[i].cnt+=q[i].s[j]>q[i].s[k];

}

sort(q+1,q+m+1,cmp);

for (int i=1;i<=m;i++) printf("%s\n",q[i].s);

return 0;

}


0 0