POJ1007,DNA Sorting,排序水题
2012-10-16 07:45
375 查看
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
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT
Sample Output
CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA
分析:
一道很水的排序题,主要是按题目给出的乱序规则给每个串增加一个乱序属性值。
用Inv函数算出,之后排序就可以了。
code:
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
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT
Sample Output
CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA
分析:
一道很水的排序题,主要是按题目给出的乱序规则给每个串增加一个乱序属性值。
用Inv函数算出,之后排序就可以了。
code:
#include<iostream> #include<cstdio> #define MAX_LEN 50 #define MAX_NUM 100 using namespace std; char DNA[MAX_NUM+5][MAX_LEN+5]; int inversion[MAX_NUM+5]; int order[MAX_NUM+5]; int Inv(char *s,int len) { int count=0,i,j; for(i=0;i<len;i++) for(j=i+1;j<len;j++) { if(s[i]>s[j]) count++; } return count; } int main() { int len,n,i,j; cin>>len>>n; getchar(); for(i=0;i<n;i++) { gets(DNA[i]); inversion[i+1]=Inv(DNA[i],len); } inversion[0]=10000; order[0]=0; for(i=1;i<=n;i++) { order[i]=i; for(j=1;j<=n;j++) if(inversion[j]>inversion[order[i]]&&inversion[order[i]]<inversion[order[i-1]]) order[i]=j; } for(i=0;i<n;i++) puts(DNA[order[i+1]]); return 0; }
相关文章推荐
- poj1007 DNA Sorting 排序
- hdoj--1379--DNA Sorting(排序水题)
- hdoj--1379--DNA Sorting(排序水题)
- POJ1007《DNA Sorting》方法:排序
- poj1007-DNA Sorting(排序)
- POJ1007 DNA Sorting 排序 C语言
- POJ1007(DNA Sorting)
- Gym - 101572B-水题&思维漏洞&排序相关-B - Best Relay Team
- HDOJ2020 ( 绝对值排序 ) 【水题】
- pat 甲1113. Integer Set Partition(排序水题)
- FatMouse' Trade(水题,结构体排序,适合c初学者)
- poj1007 按逆序数排序DNA串
- hdoj 1379 DNA Sorting【排序】
- 【poj1007】 DNA Sorting
- POJ 2007 Scrambled Polygon 凸包加排序 水题一道
- HDOJ 5131 Song Jiang's rank list(暴力排序水题)
- 【poj1007】DNA Sorting
- POJ1007 DNA Sorting (求逆序数)
- CodeForces 22D Segments 排序水题
- hpuoj 【1289】排序求和【水题】&&【sort】