1007:DNA排序
2017-09-06 15:47
946 查看
1007:DNA排序
总时间限制: 1000ms 内存限制: 65536kB 描述 现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。 逆序对指的是字符串A中的两个字符A[i]、A[j],具有i < j 且 A[i] > A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。 输入 第1行:两个整数n和m,n(0<n<=50)表示字符串长度,m(0<m<=100)表示字符串数量 第2至m+1行:每行是一个长度为n的字符串 输出 按逆序对数从少到多输出字符串,逆序对数一样多的字符串按照输入的顺序输出。 样例输入 10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT 样例输出 CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
#include <iostream> #include<algorithm> using namespace std; //http://bailian.openjudge.cn/practice/1007/ //循环里面的变量又写错了一次 struct str{ char a[55]; int cnt; }; int n,m; str s[110]; bool cmp(str x,str y){ return x.cnt<y.cnt; } int main(int argc, char *argv[]) { cin>>n>>m; for(int i=0;i<m;i++){ cin>>s[i].a; s[i].cnt=0; for(int j=0;j<n-1;j++){ for(int k=j+1;k<n;k++){ if(s[i].a[j]>s[i].a[k]){ s[i].cnt++; } } } //cout<<s[i].cnt<<endl; } sort(s,s+m,cmp); for(int i=0;i<m;i++) cout<<s[i].a<<endl; return 0; }
相关文章推荐
- 百练OJ:1007:DNA排序
- POJ 1007 DNA 排序
- POJ 1007 DNA 排序
- 百练1007:DNA排序
- poj 1007:DNA Sorting(水题,字符串逆序数排序)
- POJ 1007 DNA排序求逆序数
- POJ 1007 DNA排序求逆序数
- 计算概论(A) / 函数与字符串练习(2)2:DNA排序
- poj 4086:DNA排序
- 题目1007:奥运排序问题
- 九度 1007 奥运排序问题
- poj_1007 排序水题
- 题目1007:奥运排序问题
- POJ 1007 DNA Sorting GCC编译
- JD_OJ 题目1007:奥运排序问题
- 题目1007:奥运排序问题
- POJ 1007 DNA Sorting(水题) 逆…
- POJ 1007 DNA Sorting 水
- 题目1007:奥运排序问题
- 题目1007:奥运排序问题