您的位置:首页 > 其它

poj 1007 DNA Sorting

2010-07-17 11:19 295 查看
http://acm.pku.edu.cn/JudgeOnline/problem?id=1007

用简单的冒泡排序 竟然用了0MS就AC了 只不过这题的 (in order of ``sortedness'', from ``most sorted'' to ``least sorted'')

说的是按照从大到小 但是竟然是按照逆序数从小到大排列的 最先考虑的是相同的字母的逆序数是不想加的但是结果WA 后来改了 AC了

#include<stdio.h>
int main(){
int n,m;
char s[101][52];
int a[101],b[101];
while(scanf("%d%d",&n,&m)!=EOF){
int i,j,k;
for(i=0;i<m;i++){
scanf("%s",s[i]);
a[i]=0;
b[i]=i;
}
for(i=0;i<m;i++)
for(j=0;s[i][j]!='/0';j++){
if(s[i][j]=='A') continue;
for(k=j+1;s[i][k]!='/0';k++)
if(s[i][k]<s[i][j]) a[i]++;
}
int flag=0,t=m,r;
while(!flag){
flag=1;
for(i=0;i<t-1;i++)
if(a[i]>a[i+1]){
r=a[i];
a[i]=a[i+1];
a[i+1]=r;
r=b[i];
b[i]=b[i+1];
b[i+1]=r;
flag=0;
}
t--;
}
for(i=0;i<m;i++)
printf("%s/n",s[b[i]]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: