DS實驗題 融合軟泥怪 1

2021-09-07 08:19:49 字數 1394 閱讀 4079

很容易想到第一種做法,用huffman演算法,從森林中找出兩個值最小的節點,合併再加入森林,在這個過程中不斷記錄。

但是每一次需要sort一遍,將最小的兩個值節點置於頭兩個節點,最壞情況下複雜度是o(n^3)的量級,結果是tle。

huffman:

//

// main.cpp

// huffman tree2

//// created by wasdns on 16/12/24.

//#include #include #include #include using namespace std;

struct node

;bool cmp(node *n1, node *n2)

node *node[100005];

/* ininode:初始化節點

*/void ininode(int n)}/*

huffman函式

*/int huffman(int n)

cnt += node[1] -> num;

cnt += node[2] -> num;

node[1] -> num = node[1] -> num + node[2] -> num; //1、2合併為1

node[2] -> num = 100005; //刪除2

sort(node+1, node+n+1, cmp); //將值最小的兩棵樹前移

}return cnt;

}int main()

stl_priority_queue:

//

// main.cpp

// priorityqueue stl

//// created by wasdns on 16/12/24.

//#include #include #include using namespace std;

struct cmp

};int storage[100005];

int main()

int cnt = 0;

while (q.size() > 1)

cout << cnt << endl;

return 0;

}

2016/12/24

DS實驗題 地鼠安家

fd是乙個公認的美麗校園。一天,fd來了一群地鼠,編號為1到n,他們希望在這裡定居。現在先由第一只地鼠往下打乙個單位的距離,並且在那裡安家。對於每乙個已經安家的地鼠,如果他左下或右下沒有鄰居,那還沒安家的地鼠就可以在他的左下或者右下安家。地鼠們已經建完所有的窩了,他們評價這些窩合格的標準是它們能不能...

DS實驗題 擊鼓傳花

ds 擊鼓傳花 created by wasdns on 16 11 9.include include include include include using namespace std int killman 1000 killer and alive man int main if kil...

實驗二(第1題)

標頭檔案 ifndef seqlist h define seqlist h const int maxsize 100 class seqlist seqlist int a,int n seqlist int get int i int locate int x void insert int ...