您的位置:首页 > 其它

POJ 1007 DNA Sorting【求逆序数】

2012-04-30 20:24 549 查看
题意: 给你一个DNA序列,求其逆序数。

分析: 直接模拟即可。

View Code

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node
{
int xu,ni;
}q[101];
int cmp(const void*p1,const void*p2)
{
struct node* c=(node*)p1;
struct node* d=(node*)p2;
return c->ni-d->ni;
}
char s[102][55];
int n,m;
int re(char *s)
{
int tot=0;
int a,c,g,t,i;
a=c=g=t=0;
for(i=0;i<n;i++)
{
if(s[i]=='A')
{
a++;
tot+=c;
tot+=g;
tot+=t;
}
else if(s[i]=='C')
{
c++;
tot+=g;
tot+=t;
}
else if(s[i]=='G')
{
g++;
tot+=t;
}
else t++;
}
return tot;
}
int main()
{
int i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<m;i++)
{
scanf("%s",s[i]);
q[i].xu=i;
q[i].ni=re(s[i]);
}
qsort(q,m,sizeof(q[0]),cmp);
for(i=0;i<m;i++)
printf("%s\n",s[q[i].xu]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: