算法:POJ1007 DNA sorting

这题比较简单,重点应该在如何减少循环次数。

package practice;

import java.io.BufferedInputStream;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 * DNA sorting
 *
 * @author caiyu
 * @date 2014-11-5
 */
public class POJ1007 {
    public static void main(String[] args) {
        Scanner cin = new Scanner(new BufferedInputStream(System.in));
        int l = cin.nextInt();
        int t = cin.nextInt();

        String s;
        Map<Integer, String> m = new TreeMap<Integer, String>();
        for (int i = 0; i < t; i++) {
            s = cin.next();
            int[] count = new int[l];
            int inversion = 0;
            for (int j = 0, len = l - 1; j < len; j++) {
                count[j] = s.charAt(j);
                for (int h = 0; h < j; h++) {
                    if (count[h] > count[j])
                        inversion++;
                }
            }
            m.put(inversion, s);
        }

        for (String x : m.values()) {
            System.out.println(x);
        }
    }
}
时间: 2024-10-04 23:00:34

算法:POJ1007 DNA sorting的相关文章

[POJ1007]DNA Sorting

试题描述 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 rig

POJ-1007: DNA Sorting 详解1: 插入排序法

> 分析 >> 本题分两步 1. 计算序列的逆序数 2. 根据逆序数排序 >> 由于序列个数最大只有100个, 所以不需要过分追求速度,插入排序就够用 > 注意: >> 存储序列的数组长度最好是50+1, 有利于输出 > 附代码 1 #include "stdio.h" 2 3 int main(void) 4 { 5 char seqs[100][50 + 1] = {0} ; 6 int inversions[100] = {0

hdoj 1379 DNA Sorting

DNA Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2231    Accepted Submission(s): 1096 Problem Description One measure of ``unsortedness'' in a sequence is the number of pairs of entr

poj 1007 DNA Sorting (求逆序数)

DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 83069   Accepted: 33428 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 instanc

zju 1188 DNA Sorting

#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node { int a; char s[105]; }p[105]; int cmp(node c,node b) { return c.a<b.a; } int main() { int m,n; int t; scanf("%d",&t); //printf(&q

DNA Sorting(排序)

欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) DNA Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2182    Accepted Submission(s): 1062 Problem Description One measure of ``unsortedness'' in a sequenc

hdu 1379 DNA Sorting

DNA Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1924    Accepted Submission(s): 949 Problem Description One measure of ``unsortedness'' in a sequence is the number of pairs of entrie

POJ_1007:DNA Sorting解题报告

[大致题意]排列多个DNA序列,按照每个序列的"有序程度".如果一个序列已经按照字母顺序排好了,那么这个序列有序程度最高,如AACCGGTT.反之,如果一个序列越无序,那么它的有序程度越低,如TGTCAA. [解题思路]计算每个序列的"逆序数",即反序字母对的个数,如ATGC的逆序数是3,因为TG,TC,GC都是逆序的.然后按照每个序列的逆序数排序,逆序数越大说明这个序列越无序. #include <iostream> #include <algo

HDU 1379 DNA sorting(求逆序数)

DNA Sorting Problem 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 t