poj 1007 DNA Sorting 解題報告

2022-02-11 03:09:12 字數 773 閱讀 3499

題意:

輸入是第一行兩個數字,表示每行的長度和總行數

然後是n行字串

求出每行字串的逆序數,按逆序數從小到大的順序排列所有的字串。。

什麼是逆序數呢,在乙個排列中,如果前面的數比後面的大就稱為逆序.乙個排列中的逆序總數稱為逆序數。。

例如:給出32145求出它的逆序數,從它的第二個數開始,和它前面的數比較大小,如果是從小到大的順數,則逆序數為0,如果前面有幾個比它大的逆序數就是幾。。。

方法:對於每個字串求出逆序數,然後根據逆序數對字串排序輸出。

#include 

<

iostream

>

#include

<

string

>

#include

<

algorithm

>

#include

<

cstdio

>

using

namespace

std;

typedef

struct

dna;

dna d[

100];

bool

cmp(dna a,dna b)

intmain(

void)}

}stable_sort(d,d

+n,cmp);

for(i=0

;i<

n;i++

)return0;

}

POJ 1007題目解答

poj 1007題目解答 題目要求是對固定長度的字串進行排序,當然排序的前提是按照每個字串內部 使字元達到有序條件的時候需要的轉置交換次數按照從大到小對所有字串進行排序,暴力解法直接計算出每個字串需要進行的轉置次數。include include include using namespace st...

POJ 1007 求逆序對數)

求逆序對數,2關鍵字排序 program p1007 var n,m,i,j,k,l,p longint a array 1.200 of string s string b,num array 1.200 of longint function h s string longint var i,j...

poj1007 DNA Sorting解題報告

題目要求的是一條dna序列的逆序數,求逆序數可以考慮使用歸併演算法來進行求解。我們來設想這樣乙個場景 相鄰的a b兩塊進行公升序排序,各自都已經是排好序的了,且b排在a右邊。那麼當把b中的某數t放到已排序的數列中,那麼a序列中剩下的數就是比數t要大的,但我們要注意到 在原序列中,由於b序列在a序列右...