POJ 1007 DNA排序求逆序數

2021-08-26 13:16:38 字數 718 閱讀 5168

基本思路就是求逆序數然後根據逆序數排序,出現的問題有:

1、這題出現的問題主要是對m和n總是搞混,而且提交出現了runtime error,這個錯誤一般都是由於一般都

是非法訪問記憶體(陣列越界、訪問空指標、堆疊溢位)、做除法時除以了0 等造成的,後來仔細看了一下「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. 」就立刻發現了錯誤,結構體陣列開小了。。。

2、求逆序數有o(n^2)的直接比較法和o(nlogn)的分治法,我這裡用了比較挫的直接比較法,但也沒有超時。模板裡面的函式還是慎用為好,否則出現錯誤了除錯有困難。

3、排序用了qsort,對於字串與逆序數可以用map存,也可以用結構體陣列排序,比較函式

int cmp(const void * a,const void * b)

#include #include #include using namespace std; struct sorti st[101]; int cmp(const void * a,const void * b) int inv(int n,char a) for(i=0;i

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 逆序數 排序

非常簡單的逆序數 排序。這裡對sort和qsort徹底的弄明白了。sort是c 裡面的,要包含algorithm標頭檔案,cmp函式要返回bool值。qsort是包含在stdlib.h這個標頭檔案裡面,cmp函式比較特殊cmp const void a,const void b 一般返回int.我用...

百練1007 DNA排序

總時間限制 1000ms 記憶體限制 65536kb 描述 現在有一些長度相等的dna串 只由acgt四個字母組成 請將它們按照逆序對的數量多少排序。逆序對指的是字串a中的兩個字元a i a j 具有i j 且 a i a j 的性質。如字串 atcg 中,t和c是乙個逆序對,t和g是另乙個逆序對,...