原创 單調棧解決木板倒水問題

題目: 地上從左到右豎立着n塊木板,從1到n依次 編號,如下圖所示。我們知道每塊木板的高度,在第n塊木板右側豎立着一塊高度無限大的木板,現對每塊木板依次做如下的操作:對於第i塊木板,我們從其右側開始倒水,直到水的高度等於第i塊木板的高度,

原创 Reversing Linked List

Reversing Linked List(25 分) Given a constant K and a singly linked list L, you are supposed to reverse the links

原创 空指針異常

空指針異常 今天在一個傳遞指針參數的時候出現了閃退,也就是空指針的異常,原來的代碼就不寫了,就寫一個說明問題的代碼。 [cpp] view plain copy #include<iostream>   usin

原创 尼姆堆問題

有4堆硬幣,分別是2,5,12,14。二人輪流取硬幣。每人每次只能從某一堆上取任意數量。不能棄權。取到最後一枚硬幣的爲贏家。求先取硬幣一方有無必勝的招法。尼姆堆問題,將所有堆的硬幣個數用二進制表示,再異或,若最後結果爲零,則必有方法使對手

原创 單鏈表的就地逆置

試寫一道算法,實現單鏈表的就地逆置(反轉),即利用原表的存儲空間將線性表(a_1,a_2,\cdots a_na1​,a2​,⋯an​)逆置(反轉)爲(a_n\cdots,a_2,a_1an​⋯,a2​,a1​)。 輸入格式 輸入

原创 兩個有序鏈表序列的合併

本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合併爲一個非遞減的整數序列。 函數接口定義: List Merge( List L1, List L2 ); 其中List結構定義如下: typedef struct Node

原创 高僧鬥法

古時喪葬活動中經常請高僧做法事。 儀式結束後,有時會有“高僧鬥法”的趣味節目,以舒緩壓抑的氣氛。     節目大略步驟爲:先用糧食(一般是稻米)在地上“畫”出若干級臺階(表示N級浮屠)。 又有若干小和尚隨機地“站”在某個臺階上。 最高一級

原创 搭積木

題目 搭積木 小明最近喜歡搭數字積木, 一共有10塊積木,每個積木上有一個數字,0~9。 搭積木規則: 每個積木放到其它兩個積木的上面,並且一定比下面的兩個積木數字小。 最後搭成4層的金字塔形,必須用完所有的積木。 下面是兩種合格的搭

原创 求兩個日期之間相差多少天

求兩個日期,例如1979年12月15日與2015年3月2日之間有多少天。 直接用兩個日期相減不好下手,可以先算出兩個日期與1年1月1日之間的天數,再相減。 #include<iostream> using namespace std;

原创 買票問題

公園票價爲5角。假設每位遊客只持有兩種幣值的貨幣:5角、1元。 再假設持有5角的有m人,持有1元的有n人。 由於特殊情況,開始的時候,售票員沒有零錢可找。 我們想知道這m+n名遊客以什麼樣的順序購票則可以順利完成購票過程。 顯然,m <

原创 一元多項式的乘法與加法運算

設計函數分別求兩個一元多項式的乘積與和。 輸入格式: 輸入分2行,每行分別先給出多項式非零項的個數,再以指數遞降方式輸入一個多項式非零項係數和指數(絕對值均爲不超過1000的整數)。數字間以空格分隔。 輸出格式: 輸出分2行,

原创 從AABBBC中挑出3個可能的排列組合

有AABBBC六個字母,挑出三個,有哪些挑法? #include<iostream> using namespace std; int minnum(int a, int b) { return a > b ? b : a; }

原创 Maximum Subsequence Sum

Given a sequence of KK integers { N_1N​1​​, N_2N​2​​, ..., N_KN​K​​ }. A continuous subsequence is defined to be { 

原创 多項式求值

題目:輸入格式輸入的第一行爲一個整數 mm(1 \leq m < 181≤m<18),表示多項式共有 mm 項。之後輸入 mm 行,每行有兩個元素,分別表示多項式各項的係數 cc 與次數 ee(1 \leq c_i < 1001≤ci​<

原创 樹的同構

03-樹1 樹的同構(25 分) 給定兩棵樹T1和T2。如果T1可以通過若干次左右孩子互換就變成T2,則我們稱兩棵樹是“同構”的。例如圖1給出的兩棵樹就是同構的,因爲我們把其中一棵樹的結點A、B、G的左右孩子互換後,就得到另外一棵