POJ 1007 DNA Sorting 水
2015-08-21 18:26
323 查看
DNA Sorting
Description
One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are out of order with respect to each other. For instance, in the letter sequence ``DAABEC'', this measure is 5, since D is greater than four
letters to its right and E is greater than one letter to its right. This measure is called the number of inversions in the sequence. The sequence ``AACEDGG'' has only one inversion (E and D)---it is nearly sorted---while the sequence ``ZWQM'' has 6 inversions
(it is as unsorted as can be---exactly the reverse of sorted).
You are responsible for cataloguing a sequence of DNA strings (sequences containing only the four letters A, C, G, and T). However, you want to catalog them, not in alphabetical order, but rather in order of ``sortedness'', from ``most sorted'' to ``least sorted''.
All the strings are of the same length.
Input
The first line contains two integers: a positive integer n (0 < n <= 50) giving the length of the strings; and a positive integer m (0 < m <= 100) giving the number of strings. These are followed by m lines, each containing a string
of length n.
Output
Output the list of input strings, arranged from ``most sorted'' to ``least sorted''. Since two strings can be equally sorted, then output them according to the orginal order.
Sample Input
Sample Output
Source
East Central North America 1998
题目不难 可又是因为没搞清楚n和m wa了2次。。。。
ACcode:
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 89587 | Accepted: 36001 |
One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are out of order with respect to each other. For instance, in the letter sequence ``DAABEC'', this measure is 5, since D is greater than four
letters to its right and E is greater than one letter to its right. This measure is called the number of inversions in the sequence. The sequence ``AACEDGG'' has only one inversion (E and D)---it is nearly sorted---while the sequence ``ZWQM'' has 6 inversions
(it is as unsorted as can be---exactly the reverse of sorted).
You are responsible for cataloguing a sequence of DNA strings (sequences containing only the four letters A, C, G, and T). However, you want to catalog them, not in alphabetical order, but rather in order of ``sortedness'', from ``most sorted'' to ``least sorted''.
All the strings are of the same length.
Input
The first line contains two integers: a positive integer n (0 < n <= 50) giving the length of the strings; and a positive integer m (0 < m <= 100) giving the number of strings. These are followed by m lines, each containing a string
of length n.
Output
Output the list of input strings, arranged from ``most sorted'' to ``least sorted''. Since two strings can be equally sorted, then output them according to the orginal order.
Sample Input
10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT
Sample Output
CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA
Source
East Central North America 1998
题目不难 可又是因为没搞清楚n和m wa了2次。。。。
ACcode:
#include <map> #include <queue> #include <cmath> #include <cstdio> #include <cstring> #include <stdlib.h> #include <iostream> #include <algorithm> #define maxn 100+10 using namespace std; int _sort(char a[]){ char c[100]; strcpy(c,a); int ans=0; char t; for(int i=0;i<strlen(c);++i){ for(int j=0;j<strlen(c)-1;++j){ if(c[j]>c[j+1]){ ans++; t=c[j]; c[j]=c[j+1]; c[j+1]=t; } } } return ans; } struct m{ char a[100]; int ans; }my[maxn]; bool cmp(m x,m y){ return x.ans<y.ans; } int main(){ int n,m,k; while(scanf("%d%d",&n,&m)!=EOF){ for(k=0;k<m;++k){ scanf("%s",my[k].a); my[k].ans=_sort(my[k].a); } sort(my,my+k,cmp); for(int i=0;i<m;++i)printf("%s\n",my[i].a); } return 0; }
相关文章推荐
- Delphi 的各种错误信息(中英文)
- git学习——<三>git操作
- pd反向导出pdm
- PC-Lint 静态检测 VS编写的 解决方案代码
- Nginx编译安装,启动,停止,升级。
- js中的变量
- delphi XML 原来可以玩接口
- 文章标题
- Factorial
- 【写一个自己的js库】 1.搭个架子先
- 遇到的几个关于路径报错的问题
- 页面加载时弹出alert对话框
- unity3D中脚本生命周期
- 【日常】在某特定条件下提权夺取服务器权限
- 九度oj 1119
- android Listview,gridview局部刷新,部分刷新
- day7: 类的扩展 NSDate NSDateFormatter Category Extension延展 Protocol协议 delegate代理
- c++学习笔记(三)多态性
- Mysql Linux数据目录变更迁移
- Fragment使用带参数的构造函数遇到的问题