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;
}
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;
}
相关文章推荐
- poj 1007 DNA Sorting 【对逆序数进行sort排序】
- poj 1007 DNA Sorting (求逆序数)
- poj 1007 DNA Sorting 解题报告
- POJ-1007:DNA Sorting
- zoj 1188 || poj 1007 DNA Sorting(水~)
- poj1007 - DNA Sorting
- poj-1007 DNA sorting
- STL 应用2 POJ 1007 DNA Sorting 题解 (STL完美解答)
- POJ 1007 DNA Sorting
- POJ 1007 DNA Sorting
- (使用排序算法进行编程7.3.11)POJ 1007 DNA Sorting(使用冒泡排序算法来计算逆序对)
- POJ 1007 DNA Sorting
- 【POJ-1007】DNA Sorting
- POJ 1007 DNA Sorting
- STL 应用2 POJ 1007 DNA Sorting 题解 (STL完美解答)
- POJ 1007 DNA Sorting
- POJ 1007: DNA Sorting
- POJ 1007-DNA Sorting
- poj 1007 DNA Sorting 【水题】
- 【原】 POJ 1007 DNA Sorting 逆序数 解题报告