雅虎筆試題目 最大集合問題

2021-06-26 00:39:35 字數 854 閱讀 1893

摘要:sort函式在日常程式設計中,經常被用到;同時,對記憶體的初始化函式,經常用到fill,本節,我們以計算lis為例講解這兩個函式的應用。

例子:有一些老鼠,有x和y兩個屬性,現在要選擇乙個最大集合,其中從前到後,老鼠的x屬性依次遞減,y屬性依次遞增。

分析:如果我們先按照x屬性遞減排列,那麼形成乙個陣列,然後問題就轉化為求解這個陣列中y屬性遞增排列的最長字串,於是轉化為乙個動態規劃問題。

關鍵點2:在動態規劃的解法中,我們僅僅記錄了最長的集合長度,那麼如何將集合恢復出來?這裡,我們用到了「字首樹」的思想:在很多搜尋結構中,我們往往需要搜尋一種路徑,然而,從某個點開始的路徑可能有很多條,但是每個點的字首節點僅僅有乙個。在這種情況下,我們僅僅需要記錄某個節點的字首節點,然後就能恢復出來這條路徑。

寫這道題目的時候,犯下的錯誤:

sort函式的遞減排列;

memset函式,開始使用這個函式對int型別進行了非零的初始化,比如memset(len, 1, 12*4);想想這裡為什麼出錯?這個函式的定義式子是什麼樣的?

具體的演算法如下:

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

struct mice

mice(int x1, int y1):x(x1), y(y1){}

};struct mycom

} if(len[i]>res)

} stacks;

int curindex=resindex;

while(curindex!=-1)

cout << res <

MYSQL 問題大集合

停止mysql服務 開始 所有應用 windows管理工具 服務 將mysql服務停止。或者直接搜尋 服務 解除安裝mysql server 控制面板 所有控制面板項 程式和功能 將mysql server解除安裝掉。將mysql安裝目錄下的mysql資料夾刪除 執行 regedit 檔案,開啟登錄...

計蒜客 最大集合

給定乙個 1 n1 n 的排列 a 1 a 2 a n 定義集合 s k 顯然對於任意的 k 1 nk 1 n,s k 都是有限集合。你能求出其中包含整數最多的 s k s k 的大小嗎?輸入格式 第一行包含乙個整數 nn。1 le n le 100000 1 n 100000 第二行包含 nn 個...

HDU1856(並查集求最大集合)

有比較說明一點經驗 求最大值有時候不需要把資料求出來後遍歷。注意 最大值的求解和比較的順序沒有關係,所以可以一邊求出資料,一邊進行比較。即用設定全域性變數maxp的方法解決 省去最後遍歷的步驟。include include include includeusing namespace std co...