原创 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