您的位置:首页 > 其它

pku 1007 DNA Sorting

2010-08-01 00:18 295 查看
http://acm.pku.edu.cn/JudgeOnline/problem?id=1007
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;

#define MAX 102
int linenum,num;
int counter;

typedef struct{

string seq;
int unsortness;

}DNA;

DNA dna[MAX];

void process(string tmp){

int unsortness=0;
for(int i=0;i<linenum ; i++)
for(int j=i+1;j< linenum ; j++){
if( tmp[i]>tmp[j])
unsortness++;
}
dna[counter].seq=tmp;
dna[counter].unsortness=unsortness;
counter++;
}

bool compare(DNA a,DNA b){ //返回false,表示不符合排序要求需要交换

if( a.unsortness <= b.unsortness )
return true;
else
return false;
}
int main(){

//ifstream in("test.txt");
//in>>linenum>>num;
cin>>linenum>>num;

string tmp;
counter=0;
for(int i=0; i<num; i++){

//in>>tmp;
cin>>tmp;
process(tmp);

}
stable_sort(dna,dna+counter,compare); //注意dna+counter表示end,不是dna+counter-1
for(int j=0 ; j<counter ; j++)
cout<<dna[j].seq<<endl;
}
/*
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT

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