原创 uva 822

原題 又是一道簡單的流程模擬題, 注意看題摳細節 關鍵在於安排任務時是以人爲主體還是以待辦的事件爲循環主體 這要根據題目的某些要求來決定 這道題目要求有衝突時需要選出lasttime最早的, 否則就選出id最小的 乍一看感覺是要以待辦事件

原创 uva 12504

原題 簡單題,找不同, 用map存儲dictionary就行了 要注意的是value雖然是數字, 但不定長, 因此也需要用string類型來存儲 這題寫得有點醜.. 僅供娛樂 #include <iostream> #include <c

原创 uva 230

原題 也是純模擬題, 遠沒有上次高爾夫球賽問題複雜.. 就構造一個Book結構, 把涉及的變量都加進去, 除了title, author還有一個state 注意有三種state, (一開始以爲borrow指令是無意義的, 其實還是有影響的

原创 5-30 Table Tennis (30分)

原題 一看就是模擬題, 但就是有些細節有點繁瑣.. 題意大概是維護一些桌子, 有人來的時候如果有桌子就分配,沒有桌子就讓他們等待下一張空閒的桌子。 只不過還有一些特殊的VIP桌子和VIP用戶,如果當前有空閒的VIP桌子,那就優先

原创 uva 11988

原題 挺有意思的一道題, 模擬輸入, 用鏈表+迭代器操作非常方便 一個一個字符地讀進來, 讀到 [ 就把迭代器指向表頭, 讀到 ] 就把迭代器指向表尾 這裏順便複習一下 list 的迭代器插入規則 : 首先在iter處插入, 指的是從it

原创 uva 122

原題 模擬構造一棵二叉樹的過程 , 我的方法就是構造一個題目中所說的pair結構, 也可以當做樹的結點, 包括數值, 兩個子節點指針, 以及路徑 先把所有輸入收集起來, 按路徑的長度排序, 然後按順序插入(其實這個順序就是最後的中序遍歷的

原创 uva 12657

原題 本來沒注意到M,N的規模, 用的STL的list, 後來發現找元素的時候實在太慢了( algorithm的find是順序查找 ) 然後看了答案, 發現可以用兩個輔助數組 Left, Right來存每個元素的左右結點, 這樣就不用一個

原创 uva 12333

原題 本來以爲只是大整數計算的問題, 用了很笨的方法, 計算出前100000個斐波那契數然後逐一匹配 結果等了半天也沒算出來... 後來一查發現到後面會出現10^2W次方的位數, 顯然不能用這種方法 後來google了答案, 纔想起來這

原创 uva 12100

原題 簡單題, 純粹的按題意隊列模擬 有時候用一點struct可以使得代碼更清晰, 況且struct也不太會拖慢速度 #include <iostream> #include <cstdio> #include <cstdlib> #in

原创 uva 10763

原題 簡單題, 主要還是自定義一個類型裝兩個座標(因爲沒法創建那麼大的二維數組) 然後用map映射自定義類型來記錄是否有出現過, 再有就是用一個count計數器, 出現新的座標就+1, 匹配一對就-1, 以此來最後判斷是否全部匹配了 #i

原创 uva 679

原題 涉及二叉樹的問題, 可以嘗試用二進制簡化問題  類似於哈夫曼編碼問題, 由第一個球全部走左子樹可以猜測到 走左子樹代表0, 右子樹代表1, 則第i個球所走的路徑就是i-1的二進制碼的逆序  由此可以直接模擬第i個球, 而不用模擬前面

原创 uva 839

原題 簡單題, 用槓桿原理判斷是否平衡 沒有經驗, 一開始就構造了一個struct,  但是AC之後去翻了別人的代碼, 發現沒啥必要 因爲這些數據判斷完一次就沒用了, 幹嘛要存起來呢 還有就是又被這個坑給坑到了.... 兩個case之間需

原创 uva 442

原題 簡單題, 計算矩陣鏈乘需要的數乘次數 這類題最近做了幾道, 都是採用遇到左括號忽略, 遇到右括號出棧, 其他字符壓棧的操作 大概是表達式題的通用算法了把 #include <iostream> #include <cstdio> #

原创 uva 297

原題 有點煩的一題, 也是計算節點的值, 但是有兩棵樹, 取兩棵樹的並集, 也就是兩棵樹同一個節點的值要儘量取大的 方法很多, 基本上也都是需要給每個結點存一個值, 這個值等於其四個子節點的值之和, 以此類推 這次試了一個以前沒用過的方法

原创 uva 572

原題 簡單題, 找圖的連通子集個數, 不必多說, 直接DFS #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cm