DNA Sorting poj1007 解题报告
来源:互联网 发布:怎么看java源码 编辑:程序博客网 时间:2024/05/02 04:19
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.
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 6AACATGAAGGTTTTGGCCAATTTGGCCAAAGATCAGATTTCCCGGGGGGAATCGATGCAT
Sample Output
CCCGGGGGGAAACATGAAGGGATCAGATTTATCGATGCATTTTTGGCCAATTTGGCCAAA
解题思路:这题主要要看懂题意就KO了,知道了就很简单了,刚开始一直不知道是 什么回事的,一直不知怎么出那个结果的,最后Google一下就完全明白了,只是暴力求 出逆序和,然后排序,没 什么可以说的,也没什么复杂的算法,只是简单的一些操作,就随便在网上copy了 一个代码解决问题了,但还是要学会 结构体排序等等。 代码如下:
- #include <iostream>
- #include <algorithm>
- #include <string>
- using namespace std;
- struct dna
- {
- int pos;
- int key;
- string str;
- };
- /* sort比较函数 */
- bool cmp(const dna &a, const dna &b)
- {
- if (a.key != b.key)
- {
- return a.key < b.key;
- }
- else
- {
- return a.pos < b.pos;
- }
- }
- int main()
- {
- int n, m, count;
- dna inv[110];
- string str;
- cin >> n >> m;
- /* 求逆序数对的个数 */
- for (int i = 0; i < m; i++)
- {
- cin >> str;
- count = 0;
- for (int j = 0; j < n - 1; j++)
- {
- for (int k = j + 1; k < n; k++)
- {
- if (str[j] > str[k]) count++;
- }
- }
- /* 保存信息 */
- inv[i].key = count;
- inv[i].pos = i;
- inv[i].str = str;
- }
- /* 按逆序数对大小/序号排序 */
- sort(inv, inv + m, cmp);
- /* 输出结果 */
- for (int i = 0; i < m; i++)
- {
- cout << inv[i].str << endl;
- }
- //system("pause");
- return 0;
- }
- POJ1007 DNA Sorting 解题报告
- DNA Sorting poj1007 解题报告
- poj1007"DNA Sorting"解题报告
- poj1007--DNA Sorting解题报告
- POJ_1007:DNA Sorting解题报告
- POJ1007 DNA Sorting
- poj1007(DNA Sorting)
- POJ1007 DNA Sorting 水题
- POJ1007·DNA Sorting
- POJ1007:DNA Sorting
- POJ1007 DNA Sorting
- poj1007 DNA Sorting
- poj1007 - DNA Sorting
- poj1007 DNA Sorting 排序
- POJ1007-DNA Sorting-ACM
- POJ1007 DNA Sorting
- POJ1007--DNA Sorting
- POJ1007 DNA Sorting
- 太麻烦
- 新手报到
- 1008p
- 明天就是新的一周了
- 让你的游戏运行不起来(不知道的看看)
- DNA Sorting poj1007 解题报告
- JAVA继承
- 推荐!!!
- 找到了组织!
- 编程认识
- 新加入了CSDN
- 侯捷对进入IT行业的年轻人的建议
- 一位软件工程师的6年总结
- 其实没什么好说的啦,只是任务而已