POJ 1007(无序度 排序) 解题报告
2010-05-30 16:45
423 查看
/*__________________________________________________________POJ 1007题_________________________________________________________________ DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45169 Accepted: 17618 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 ************************************************************************************************************************************/ #include<iostream> #include<string> #include<stdlib.h> using namespace std; typedef struct DNAstring{ string str; int unsortedness; }DNAstring; /* #include<fstream> fstream fin("input.txt",ios::in); #define cin fin //*/ void CountUnsortedness(struct DNAstring *m) { int i,j; for(i=0;i<m->str.length();i++) for(j=i+1;j<m->str.length();j++) { if(m->str[i]>m->str[j]) { m->unsortedness++; // cout<<m->unsortedness; } } } int cmp(const void*a,const void*b) { return (*(DNAstring *)a).unsortedness - (*(DNAstring *)b).unsortedness; } int main() { int i; int length,n; cin>>length>>n; struct DNAstring *inputStr=new struct DNAstring ; for(i=0;i<n;i++) { cin>>inputStr[i].str; inputStr[i].unsortedness=0; //cout<<inputStr[i].str<<" "<<inputStr[i].unsortedness<<endl; CountUnsortedness(&inputStr[i]); //cout<<inputStr[i].str<<" "<<inputStr[i].unsortedness<<endl<<endl; } qsort(inputStr,n,sizeof(struct DNAstring),cmp); for(i=0;i<n;i++) cout<<inputStr[i].str<<endl; return 0; } //总结:通过此题会用<stdlib.h>中的qsort()快排函数了
相关文章推荐
- POJ 1007(无序度 排序) 解题报告
- POJ_1007:DNA Sorting解题报告
- POJ 1833 排序 解题报告
- poj 1007 DNA Sorting 解题报告
- 【原】 POJ 1007 DNA Sorting 逆序数 解题报告
- POJ 1007 解题报告 DNA Sorting
- poj2388解题报告(排序)
- 解题报告:POJ_1833 排序
- poj 1007 DNA Sorting 解题报告
- Pku acm 1007 DNA Sorting 排序算法解题报告(五)----求逆序数 排序
- POJ 1094 变量排序 解题报告
- POJ1007解题报告
- (解题报告)POJ3664---Election Time---用结构体实现两组相关联数据的排序问题
- POJ 1007解题报告
- poj 1007 DNA Sorting 解题报告
- POJ 1007 DNA Sorting [解题报告] Java
- POJ 1922 解题报告
- POJ-1152 An Easy Problem! 解题报告(数论) 是不是N进制数
- poj 3255 Roadblocks 次短路 spfa 解题报告
- POJ-1730 Perfect Pth Powers 解题报告(数论) 最大开方数