您的位置:首页 > 其它

POJ 1007 DNA Sorting

2015-02-21 12:51 513 查看
【题意】给定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
;

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: