原创 單調遞增最長子序列

設計一個O(n2)時間的算法,找出由n個數組成的序列的最長單調遞增子序列。 輸入格式: 輸入有兩行: 第一行:n,代表要輸入的數列的個數 第二行:n個數,數字之間用空格格開 輸出格式: 最長單調遞增子序列的長度 輸入樣例: 在這裏

原创 名人堂與代金券 (25分)

對於在中國大學MOOC(http://www.icourse163.org/ )學習“數據結構”課程的學生,想要獲得一張合格證書,總評成績必須達到 60 分及以上,並且有另加福利:總評分在 [G, 100] 區間內者,可以得到 5

原创 字符串模式匹配(KMP模板題)

給定一個字符串 text 和一個模式串 pattern,求 pattern 在text 中的出現次數。text 和 pattern 中的字符均爲英語大寫字母或小寫字母。text中不同位置出現的pattern 可重疊。 輸入格式:

原创 特立獨行的幸福 (25分)

對一個十進制數的各位數字做一次平方和,稱作一次迭代。如果一個十進制數能通過若干次迭代得到 1,就稱該數爲幸福數。1 是一個幸福數。此外,例如 19 經過 1 次迭代得到 82,2 次迭代後得到 68,3 次迭代後得到 100,最後

原创 猜數字 (20分)

一羣人坐在一起,每人猜一個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。 輸入格式: 輸入在第一行給出一個正整數N(≤10 ​4 ​​ )。隨後 N 行,每行給出一個玩家的名字(由不超過8個英

原创 最大堆的建立插入刪除

堆(優先隊列)priority queue 特殊的隊列,取出元素的順序是依照元素的優先權(關鍵字)大小,而出元素進入隊列的先後順序 操作:查找最大值(最小值),刪除(最大值) 數組: 鏈表: 有序數組: 有序鏈表: 採用二叉搜索樹

原创 工作分配問題

設有n件工作分配給n個人。將工作i分配給第j個人所需的費用爲cij 。 設計一個算法,對於給定的工作費用,爲每一個人都分配1 件不同的工作,並使總費用達到最小。 輸入格式: 輸入數據的第一行有1 個正整數n (1≤n≤20)。接下

原创 最長公共前後綴(KMP中next數組求法)

字符串的前綴是指不包含最後一個字符的所有以第一個字符開頭的連續子串;後綴是指不包含第一個字符的所有以最後一個字符結尾的連續子串。例如對於字符串 abacaba,其前綴有 a, ab, aba, abac, abacab,後綴有ba

原创 取石頭遊戲

兩個足夠聰明的人玩輪流取石頭的遊戲,誰取到最後一個石頭誰就贏了,他們一次只能取1個、3個、7個或8個石頭,寫一程序判斷n個石頭時先取的人是輸還是贏。 輸入格式: 一個整數n,其值不超過10000000。 輸出格式: 如果先取的人贏

原创 輸出全排列(C++全排列函數)

請編寫程序輸出前n個正整數的全排列(n<10),並通過9個測試用例(即n從1到9)觀察n逐步增大時程序的運行時間。 輸入格式: 輸入給出正整數n(<10)。 輸出格式: 輸出1到n的全排列。每種排列佔一行,數字間無空格。排列的輸出

原创 英文單詞排序(25分)

本題要求編寫程序,輸入若干英文單詞,對這些單詞按長度從小到大排序後輸出。如果長度相同,按照輸入的順序不變。 輸入格式: 輸入爲若干英文單詞,每行一個,以#作爲輸入結束標誌。其中英文單詞總數不超過20個,英文單詞爲長度小於10的僅由

原创 最長連續遞增子序列

給定一個順序存儲的線性表,請設計一個算法查找該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列爲(3,4,6,8)。 輸入格式: 輸入第1行給出正整數n(≤10^5​​ );第2行給

原创 列出葉結點 (25分)

對於給定的二叉樹,本題要求你按從上到下、從左到右的順序輸出其所有葉節點。 輸入格式: 首先第一行給出一個正整數 N(≤10),爲樹中結點總數。樹中的結點從 0 到 N−1 編號。隨後 N 行,每行給出一個對應結點左右孩子的編號。如

原创 裝箱問題

假設有N項物品,大小分別爲s\1 、s2 、…、si 、…、sN ,其中si爲滿足1≤si≤100的整數。要把這些物品裝入到容量爲100的一批箱子(序號1-N)中。裝箱方法是:對每項物品, 順序掃描箱子,把該物品放入足以能夠容下它

原创 楊輝三角形 (10分)

請編寫程序,顯示楊輝三角形。 輸入格式 行數(正整數,不超過22) 輸出格式 顯示指定行數的楊輝三角形 輸入樣例1 1 輸出樣例2 1 輸入樣例2 6 輸出樣例2 1 1