您的位置:首页 > 其它

poj 1007 DNA Sorting 求逆序数

2015-01-27 23:18 281 查看
http://poj.org/problem?id=1007

160K 0MS

#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
struct DNAsort{
char str[60];
int num;
}dna[105];
int n,m;

int cmp(struct DNAsort &dna1,struct DNAsort &dna2){
return dna1.num<dna2.num;
}

int main(){
int i,j;
int A,C,G;
scanf("%d%d",&n,&m);
for(i=0;i<m;i++){
scanf("%s",dna[i].str);
dna[i].num=0;
A=C=G=0;
for(j=n-1;j>=0;j--){
switch(dna[i].str[j]){
case 'A': A++;break;
case 'C':{
C++;
dna[i].num+=A;
break;
}
case 'G':{
G++;
dna[i].num+=(C+A);
break;
}
case 'T':{
dna[i].num+=(G+C+A);
break;
}
}
}
}
sort(dna,dna+m,cmp);
for(i=0;i<m;i++){
printf("%s\n",dna[i].str,dna[i].num);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: