1.3k1 分鐘

# 題目: UVa 12207 - That is Your Queue # 題目說明 政府終於解決了全民健保問題,而建立了一套系統 你需要用程式寫這個系統,說明如下: 每個人被分配到一個編號,由1開始排 當緊急狀況發生時,會有人優先移到前面 INPUT: 每筆測資第一行有兩個整數P和C,P代表國家的人口數,C代表接下來的指令數 (當P與C為0時結束程式) 接下來會有C行,每行會有N或E x N代表輸出最前面的人並移動到最後 E x代表將編號為x的人移動到最前面 OUTPUT: 每遇到N,輸出最前面的人 # 解題方法 利用deque儲存資料,方便進行push_back、push_f
9031 分鐘

# 題目: UVa 11988 - Broken Keyboard (a.k.a. Beiju Text) # 題目說明 你正在用一個壞掉的鍵盤打一篇文章 其實也沒有那麼糟,唯一的問題是鍵盤會自己打home與end 這種狀況叫做Beiju,你的目標是找到Beiju訊息 INPUT: 輸入一長串的字串 OUTPUT: 輸出Beiju訊息 # 解題方法 用list儲存訊息,以it紀錄當前輸入位置 當碰到[時,it移到最前面 當碰到]時,it移到最後面 # 參考程式碼 #include <iostream> #include <list> #include &
2.1k2 分鐘

# 題目: UVa 10653 - Bombs! NO they are Mines!! # 題目說明 現在是3002年,機器人已經統治了世界,你是少數存活的人類之一 機器人一直用你來比對他們是否能變得更聰明 今天是一個特別的日子,只要你能在IRQ2003領域中擊敗最快的機器人,你就會獲得自由 就算他們是智能的,但機器人仍無法改變他們的基本缺陷: 只能走上 下 左 右 你擁有一張顯示不安全區域的地圖,你必須找到從起點到終點的最短路徑 INPUT: 每筆資料第一行有兩個整數R和C,代表地圖的大小 第二行有一個整數N,代表以下有幾筆資料 接下來有N行,每行先讀入兩個整數r和k,代表第幾行與炸彈數
1.1k1 分鐘

# 題目: UVa 11572 - Unique Snowflakes # 題目說明 Emily有一個很酷的想法:包裝雪花並販售 她設計了一個自動包裝雪花的機器 但是,她想讓每一個雪花包裝都不同 寫一個程式找出最大雪花包裝的大小 INPUT: 第一行為一個整數n,代表有n筆資料 每筆資料第一行為一個整數k,代表有k片雪花 接下來有k行,每行有一個整數,代表雪花的編號 OUTPUT: 每筆資料輸出最多能裝幾片雪花 # 解題方法 求一個陣列中最長的不重複子陣列 如果遇到重複的雪花,則記錄長度並刪除最前項 # 參考程式碼 #include <iostream> #include
1.1k1 分鐘

# 題目: UVa 11136 - Hoax or what # 題目說明 Mal-Wart超市正在進行促銷,以下是說明 客戶需將寫有電話的帳單存入抽獎箱 每天結束時會選擇最貴及最便宜的帳單各一張,買最貴的人得到最貴與最便宜的差額 抽獎完的帳單不會放回抽獎箱 INPUT: 每筆資料第一行為一個整數n,代表有n天 接下來會有n行,每行會有一個整數k,代表帳單的數量,接下來k個整數代表每個帳單的金額 當n為0時結束程式 OUTPUT: 輸出超市總共要為這個促銷支出多少錢 # 解題方法 利用multiset自動排序,每次取頭與尾的帳單即為最大與最小,相減後累加至結果 由於測資的大小,結果需
1.8k2 分鐘

# 題目: UVa 978 - Lemmings Battle # 題目說明 兩個種族正在進行戰鬥,到底是綠色種族贏還是藍色種族贏呢? 寫一個程式來判斷哪個種族獲得了勝利 INPUT: 第一行有一個整數N,代表有幾筆資料 每筆資料第一行有三個整數B、SG和SB B代表每次戰鬥派出的人數 SG代表綠色種族人數 SB代表藍色種族人數 接下來的SG為綠色種族的戰力,SB為藍色種族的戰力 OUTPUT: 如果雙方全軍覆沒則輸出green and blue died 如果一方勝利則輸出勝利種族及存活的戰力(順序為降冪排序) # 解題方法 將雙方隊伍存入multiset,以vector暫存戰鬥結果
1.2k1 分鐘

# 題目: UVa 11286 – Conformity # 題目說明 Waterloo大學的新生因為興趣不同,而選擇不同的課 但學校希望他們選的課能盡量一樣,所以設置了一個獎項 最受歡迎的課程組合 寫一個程式找出最受歡迎的課程組合 INPUT: 每筆資料第一行為一個整數n,代表學生人數 接下來會有n行,每行有五個整數,代表選的課程 當n為0時結束程式 OUTPUT: 輸出最受歡迎的課程組合的人數 如果有多個最受歡迎的課程組合,則將人數加總 # 解題方法 先將每個課程組合排序,之後連接起來存入string 將string存入map計算數量,數量最多的組合即為最受歡迎的課程組合 # 參考
7321 分鐘

# 題目: UVa 10282 - Babelfish # 題目說明 你剛剛移民到一個大城市,這裡的語言對你來說很陌生,幸運的是,你有一個字典 寫一個程式將未知語言翻譯成英文 INPUT: 每一行會有兩個字串,前者代表英文,後者代表未知語言,直到輸入空白 接著重複輸入未知語言 OUTPUT: 將未知語言翻譯成英文輸出,如果字典找不到則輸出eh # 解題方法 這題主要是熟悉map這個容器,一個key會對應到一個value 建map後,搜尋輸出即可 # 參考程式碼 #include <iostream> #include <map> #include <
1.8k2 分鐘

# 題目: UVa 924 - Spreading the News # 題目說明 每個人每天會將新消息告訴朋友 寫一個程式去找出以下兩項 最多人知道消息那一天的人數 最大人數發生的最早那一天 INPUT: 第一行會有一個整數E,代表人數,由0編號至E - 1 接下來會有E行,代表0至E - 1的朋友 每行會有一個整數N,代表朋友的人數,之後會有N個整數,代表朋友的編號 接著會有一個整數T,代表有幾個cases,之後會有T個整數,代表從他開始傳遞 OUTPUT: 輸出最大人數及最大人數最早發生的那一天 如果最大人數為0,則不需要輸出後者 # 解題方法 先建表,之後進行bfs,儲存傳遞的
2.4k2 分鐘

# 題目: UVa 429 - Word Transformation # 題目說明 有一種字謎叫word transformation 給你一個字,每次改變一個字母使之成為一個新單字,最終變得與目標字一樣 你的目標是找到一開始的字需要經過多少次轉換會變成目標字 INPUT: 輸入第一行有一個整數N,代表總共有幾個set 接著空一行 接下來會連續輸入字串,直到*符號 *之後,每行會有兩個字串,前者為一開始的字,後者為目標字 當輸入為空行時,結束這個set OUTPUT: 先輸出每個開始字及目標字,接著輸出轉換的數量 每個set會隔一行 # 解題方法 先用map建表,將差一個字元的字連在一起