20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第1111頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
建國中學資訊科學科能力競賽 建國中學資訊科學科能力競賽 建國中學資訊科學科能力競賽
建國中學資訊科學科能力競賽 程式設計試題 程式設計試題 程式設計試題 程式設計試題 分數紀錄表
分數紀錄表 分數紀錄表 分數紀錄表
班級班級
班級班級::::________ ________ ________ ________ 座號座號座號座號::::_____ _____ _____ _____ 姓名姓名姓名姓名::::________________________________________________________________
====================
====================
====================
============================以下欄位請勿填寫以下欄位請勿填寫以下欄位請勿填寫以下欄位請勿填寫============================================================================ ========
題目名稱
題目名稱 題目名稱
題目名稱 1111 222 2 333 3 4444 5555 666 6 777 7 8888 9999 10101010 總總總總 LOCK
LOCK LOCK LOCK 因為已鎖定你 因為已鎖定你因為已鎖定你
因為已鎖定你
NMKNAPSACK NMKNAPSACKNMKNAPSACK NMKNAPSACK
背包問題背包問題
背包問題背包問題
FALL FALL FALL FALL 掉落的橘子 掉落的橘子掉落的橘子
掉落的橘子
HENGE HENGE HENGE HENGE 石碑陣 石碑陣 石碑陣
石碑陣
BASEBASE BASEBASE 烏龜烏龜烏龜
烏龜塔地基塔地基塔地基 塔地基
NSTOWER NSTOWERNSTOWER NSTOWER2222 小烏龜爬高塔 小烏龜爬高塔 小烏龜爬高塔
小烏龜爬高塔 2222
上機測驗
上機測驗 上機測驗
上機測驗(80%)(80%)(80%)(80%)::::___________/300___________/300___________/300___________/300
參賽同學簽名 參賽同學簽名 參賽同學簽名
參賽同學簽名::::____________________________________________________________________
紙筆測驗 紙筆測驗 紙筆測驗
紙筆測驗(20%)(20%)(20%)(20%)::::___________/50___________/50___________/50___________/50
總分 總分 總分
總分::::____________________________________________________________________________________________________
評分員簽名 評分員簽名評分員簽名
評分員簽名:::_________________:___________________________________________________
登記員簽名 登記員簽名登記員簽名
登記員簽名:::_________________:___________________________________________________
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第2222頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
上機測驗注意事項 上機測驗注意事項 上機測驗注意事項 上機測驗注意事項
壹壹壹
壹、、、 、 本測驗採用檔案輸入輸出格式本測驗採用檔案輸入輸出格式本測驗採用檔案輸入輸出格式本測驗採用檔案輸入輸出格式,,,,因此之故參賽選手應嚴格遵守每題之執行檔因此之故參賽選手應嚴格遵守每題之執行檔因此之故參賽選手應嚴格遵守每題之執行檔因此之故參賽選手應嚴格遵守每題之執行檔、、、、 輸入檔輸入檔
輸入檔輸入檔、、、、輸出檔之格式與名稱輸出檔之格式與名稱輸出檔之格式與名稱輸出檔之格式與名稱。。。。否則將酌予扣分否則將酌予扣分否則將酌予扣分否則將酌予扣分,,,,或該題不予計分或該題不予計分或該題不予計分或該題不予計分。。。 。 題目名稱
題目名稱 題目名稱
題目名稱 A.A.LOCKA.A.LOCKLOCKLOCK B.B.NMKNAPSACKB.B.NMKNAPSACKNMKNAPSACKNMKNAPSACK C.C.FALLC.C.FALLFALLFALL D.D.HENGED.D.HENGEHENGEHENGE E.E.E.E.BASEBASEBASEBASE F.F.NSTOWERF.F.NSTOWERNSTOWERNSTOWER2222 原始檔原始檔原始檔
原始檔 lock.*lock.* lock.*lock.* nmknapsack.*nmknapsack.* nmknapsack.*nmknapsack.* fall.*fall.* fall.*fall.* henge.*henge.* henge.*henge.* base.*base.*base.*base.* nstowernstower2nstowernstower222.*.*.*.*
執行檔 執行檔執行檔
執行檔 lock.exelock.exelock.exelock.exe nmknapsack.exenmknapsack.exe nmknapsack.exenmknapsack.exe fall.exefall.exefall.exefall.exe henge.exehenge.exehenge.exehenge.exe base.exebase.exe base.exebase.exe nstowernstowernstower2nstower222.exe.exe.exe .exe 輸入檔
輸入檔輸入檔
輸入檔 lock.inlock.inlock.inlock.in nmknapsack.innmknapsack.in nmknapsack.innmknapsack.in fall.infall.in fall.infall.in henhenge.inhenhenge.inge.inge.in base.inbase.inbase.inbase.in nstowernstower2nstowernstower222.in.in.in.in 輸出檔
輸出檔輸出檔
輸出檔 lock.outlock.outlock.outlock.out nmknapsack.outnmknapsack.out nmknapsack.outnmknapsack.out fall.outfall.outfall.outfall.out henge.outhenge.outhenge.outhenge.out base.outbase.out base.outbase.out nstowernstowernstower2nstower222.out.out.out .out 單筆時限單筆時限
單筆時限單筆時限 3333ssss 1s1s1s1s 10101010ssss 5555ssss 3333ssss 3s3s3s3s 佔分佔分
佔分佔分 50505050 50505050 50505050 50505050 50505050 50505050 貳
貳貳 貳、、、 、 肆 肆 肆 肆、、、、 伍 伍 伍 伍、、、、 陸 陸 陸 陸、、、、 柒 柒 柒 柒、、、、 捌 捌 捌 捌、、、、 玖 玖 玖 玖、、、、 拾 拾 拾 拾、、、、 拾壹 拾壹 拾壹 拾壹、、、、
拾貳 拾貳拾貳 拾貳、、、 、
拾參 拾參拾參 拾參、、、 、 拾肆 拾肆拾肆 拾肆、、、 、
將所有執行檔與原始檔置於同一資料夾 將所有執行檔與原始檔置於同一資料夾 將所有執行檔與原始檔置於同一資料夾
將所有執行檔與原始檔置於同一資料夾,,,,輸入輸出皆預設與執行檔同目錄輸入輸出皆預設與執行檔同目錄輸入輸出皆預設與執行檔同目錄輸入輸出皆預設與執行檔同目錄。。。 。 每題分數皆為
每題分數皆為 每題分數皆為
每題分數皆為 505050 分50分分分,,,,10101010 筆測試資料一筆筆測試資料一筆筆測試資料一筆 5筆測試資料一筆555 分分分,分,,共,共共 300共300300300 分分分分。。。。 針對每一題程式的每一筆測試資料
針對每一題程式的每一筆測試資料 針對每一題程式的每一筆測試資料
針對每一題程式的每一筆測試資料,,,,執行時間執行時間執行時間依照上述表格為執行時間依照上述表格為依照上述表格為限制依照上述表格為限制限制限制。。。。超過超過超過超過 5555 秒視為未完成
秒視為未完成 秒視為未完成
秒視為未完成,,,,該筆測試資料視為該筆測試資料視為該筆測試資料視為該筆測試資料視為 0000 分分分分。。。。 測驗中只允許開啟撰寫程式必需的編輯器 測驗中只允許開啟撰寫程式必需的編輯器 測驗中只允許開啟撰寫程式必需的編輯器
測驗中只允許開啟撰寫程式必需的編輯器、、、、編譯器以及規定的軟體編譯器以及規定的軟體編譯器以及規定的軟體,編譯器以及規定的軟體,,不得開啟,不得開啟不得開啟不得開啟 其餘應用程式
其餘應用程式 其餘應用程式
其餘應用程式((((例如例如例如例如::::新接龍新接龍新接龍新接龍),),),),違者視同作弊違者視同作弊違者視同作弊違者視同作弊,,,,上機測驗以上機測驗以上機測驗以上機測驗以 0000 分計算分計算分計算分計算。。。。 若對題目有任何問題
若對題目有任何問題 若對題目有任何問題
若對題目有任何問題,,,,請於測驗開始一小時內於提問單上提出請於測驗開始一小時內於提問單上提出請於測驗開始一小時內於提問單上提出請於測驗開始一小時內於提問單上提出,,,並舉手交給監,並舉手交給監並舉手交給監並舉手交給監 考人員
考人員 考人員
考人員,,,,測驗開始一小時後即不再接受任何提問測驗開始一小時後即不再接受任何提問測驗開始一小時後即不再接受任何提問測驗開始一小時後即不再接受任何提問。。。。 測驗期間
測驗期間 測驗期間
測驗期間,,,,選手應隨時備份資料選手應隨時備份資料選手應隨時備份資料選手應隨時備份資料,,,,以防資料流失以防資料流失以防資料流失以防資料流失。。。。 測驗期間
測驗期間 測驗期間
測驗期間,,,請勿交談或與其他選手有任何形式交流,請勿交談或與其他選手有任何形式交流請勿交談或與其他選手有任何形式交流請勿交談或與其他選手有任何形式交流,,,違者視同作弊,違者視同作弊違者視同作弊違者視同作弊,,,,上機測驗上機測驗上機測驗上機測驗 以
以 以
以 0000 分計算分計算分計算分計算。。。。 測驗期間 測驗期間 測驗期間
測驗期間,,,禁止攜帶或使用任何電子,禁止攜帶或使用任何電子禁止攜帶或使用任何電子禁止攜帶或使用任何電子設備以及使用無線網路設備以及使用無線網路設備以及使用無線網路,設備以及使用無線網路,,,違者視同作弊違者視同作弊違者視同作弊違者視同作弊,,,, 上機測驗以
上機測驗以 上機測驗以
上機測驗以 0000 分計算分計算分計算分計算。。。。 一旦宣布測驗結束 一旦宣布測驗結束 一旦宣布測驗結束
一旦宣布測驗結束,,,,選手應立即離開電腦選手應立即離開電腦選手應立即離開電腦選手應立即離開電腦,,,,若經規勸不服者若經規勸不服者若經規勸不服者若經規勸不服者,,,視同作弊,視同作弊視同作弊,視同作弊,,上機,上機上機上機 測驗以
測驗以 測驗以
測驗以 0000 分計算分計算分計算分計算。。。。 測驗結束後
測驗結束後 測驗結束後
測驗結束後,,,,選手應於指定地點等待選手應於指定地點等待選手應於指定地點等待選手應於指定地點等待,,,並於指定時間內至指定地點與評審共同,並於指定時間內至指定地點與評審共同並於指定時間內至指定地點與評審共同並於指定時間內至指定地點與評審共同 進行測試與評審作業
進行測試與評審作業 進行測試與評審作業 進行測試與評審作業。。。。 評審作業期間
評審作業期間 評審作業期間
評審作業期間,,,,選手不得更動程式碼以及編譯程式選手不得更動程式碼以及編譯程式選手不得更動程式碼以及編譯程式,選手不得更動程式碼以及編譯程式,,若經規勸後不服,若經規勸後不服若經規勸後不服若經規勸後不服,,,,或已完或已完或已完或已完 成動作
成動作 成動作
成動作,,,,視同作弊視同作弊視同作弊視同作弊,,,,上機測驗以上機測驗以上機測驗以上機測驗以 0000 分計算分計算分計算分計算。。。。 輸入資料量非常大
輸入資料量非常大 輸入資料量非常大
輸入資料量非常大((((單檔最大單檔最大單檔最大單檔最大 100MB)100MB)100MB),100MB),,請使用,請使用請使用較請使用較較快速的較快速的快速的 Input/Ouput快速的Input/OuputInput/OuputInput/Ouput。。。 。 是否同意以上條款
是否同意以上條款 是否同意以上條款
是否同意以上條款????(Y/N)(Y/N)(Y/N)(Y/N)
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第3333頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
提問單提問單
提問單提問單((((姓名姓名姓名姓名::::____________________________________)))) 請於上機測驗開始
請於上機測驗開始 請於上機測驗開始
請於上機測驗開始一小時內提出一小時內提出一小時內提出一小時內提出,,,,回答僅有回答僅有回答僅有回答僅有『『『『是是是是』、『』、『』、『』、『否否否否』』』』或或或或『『『『不予回答不予回答不予回答不予回答』。』。』。』。
問題描述 問題描述 問題描述 問題描述
答覆答覆
答覆答覆:::: □□□□是是是是 □□□□否否否否 □□不予回答□□不予回答不予回答 不予回答
提問單提問單
提問單提問單((((姓名姓名姓名姓名::::____________________________________)))) 請於上機測驗開始一小時內提出
請於上機測驗開始一小時內提出 請於上機測驗開始一小時內提出
請於上機測驗開始一小時內提出,,,,回答僅有回答僅有回答僅有回答僅有『『『『是是是是』、『』、『』、『』、『否否否否』』』』或或或或『『『『不予回答不予回答不予回答不予回答』。』。』。』。
問題描述 問題描述 問題描述 問題描述
答覆答覆
答覆答覆:::: □□□□是是是是 □□□□否否否否 □□不予回答□□不予回答不予回答 不予回答
提問單
提問單 提問單
提問單((((姓名姓名姓名姓名::::____________________________________)))) 請於上機測驗開始一小時內提出
請於上機測驗開始一小時內提出 請於上機測驗開始一小時內提出
請於上機測驗開始一小時內提出,,,,回答僅有回答僅有回答僅有回答僅有『『『『是是是是』、『』、『』、『』、『否否否否』』』』或或或或『『『『不予回答不予回答不予回答不予回答』。』。』。』。
問題描述 問題描述 問題描述 問題描述
答覆答覆
答覆答覆:::: □□□□是是是是 □□□□否否否否 □□不予回答□□不予回答不予回答 不予回答
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第4444頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第一題第一題
第一題第一題::::因為已鎖定你因為已鎖定你因為已鎖定你(因為已鎖定你((題(題題目代碼題目代碼目代碼:目代碼::LOCK:LOCKLOCK)LOCK))時間限制)時間限制時間限制:時間限制::3s:3s3s3s
這裡可能有人沒聽過甦蹦的故事。
甦蹦是一隻愛吃橘子的烏龜。他費盡千辛萬苦在家旁用上好的黃金木材圈起了傳 說中的橘子園。然而橘子園甫開始栽種,就遭受了嚴重的蟲害。甦蹦為了根除蟲 害,隻身前往古墨西哥神殿尋求遠古先靈的指點。
經過了七七四十九天的長途跋涉,在一個月色皎潔的晚上,甦蹦終於來到古墨西 哥叢林的一片寬敞空地,像是個圓形的廣場。甦蹦邁步走到廣場正中央。
「這種地方竟然會有圓形的開闊地,這樣絕對很奇怪啊!」甦蹦眉頭一皺,發現 事情並不單純──但也為時已晚了。
甦蹦定神細視,發現圓形廣場的圓周上共有 N 座哨站,他並發覺自己被鎖定了!
他知道此刻不能輕舉妄動,只能待在原地眼見這月亮悄悄溜走,又見那太陽緩緩 升起。但他知道他沒有時間等多少個晝夜變換了!
他翻了翻字典,瞭解了鎖定的定義是由四座相異哨站圍成的結界。並且此結界的 形狀必須是一個矩形。(即,四個角皆為直角的四邊形)
他快速計算了每座哨站的位置,並希望你能幫他儘快算出共有幾種可能的結界。
輸入說明輸入說明 輸入說明輸入說明
輸入第一行包含一個正整數 T,代表有幾組測試資料。
接下來每組測試資料包含兩行,第一行有一個正整數 N,代表該廣場有幾座哨站。
第二行有 N 個正整數 A1, A2, … AN。依序表示相鄰兩座哨站的距離。
輸出說明輸出說明 輸出說明輸出說明
對每組測試資料輸出一個非負整數 K,表示可能鎖定甦蹦的結界總數。
範例輸入範例輸入 範例輸入範例輸入 2
11
1 3 1 1 4 1 2 1 2 2 2 5
2 2 2 3 3
範例輸出範例輸出 範例輸出範例輸出 6
0
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第5555頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
數據範圍數據範圍 數據範圍數據範圍
對於 100%的測試資料,1 ≤ T ≤ 5 且 4 ≤ N。
對於 10%的測試資料,N ≤ 20。
對於 30%的測試資料,N ≤ 200。
對於 50%的測試資料,N ≤ 5000。
對於 60%的測試資料,N ≤ 50000。
對於 70%的測試資料,ΣAi ≤ 1000000。
對於對於
對於對於 100%100%100%的測試資料100%的測試資料的測試資料的測試資料,,,,N N N N ≤ 500000 500000 500000 500000,,,,1 1 1 1 ≤ Ai Ai Ai Ai ≤ 5000 5000 5000 5000。。。。
提示提示 提示提示
使用到 long long type 的格式化輸入輸出請用%I64d。
對於範例輸入的第一組資料,下圖顯示了其中兩種合法結界:
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第6666頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第二第二
第二第二題題題題::::背包問題背包問題背包問題(背包問題((題目代碼(題目代碼題目代碼:題目代碼::NMKNAPSACK:NMKNAPSACKNMKNAPSACK)NMKNAPSACK)))時間限制時間限制時間限制時間限制::::1s1s1s1s
你可能已經忘了關於『你』的故事。
這個故事說起來可長呢,從你和小明的邂逅、你的記者生涯、你拜訪東方紅烏 龜館、你大戰烏龜大軍、你與烏龜皇后、你的書架、你加入 RK 的陣營、你目睹 新國王的選舉、你發現小明當上了國王、你死而復生、你進入了古墨西哥遺跡……
事情是這樣的。你正處在墨西哥神殿的深處,發現了兩個背包,第一個可容納
n
個物品,第二個可容納m
個物品。你發現了n+m
個古墨西哥神器,第i
個神 器恰巧是w
i公斤重,且可以放在任何一個背包中。當然,任何一個背包所放物 品的總個數都不可以超過背包容量。於是,你希望利用這兩個背包一次帶走所有神器。
在你打算把兩個背包都寄出去時,你卻發現帶走背包是需要代價的。計價的方 法是兩個背包分開算後相加,一個背包的收費便是該背包內的神器重量平均。
於是,身為
Mad Scientist
的你,希望寄封D-Mail
給過去的自己,告訴自己 如何安排背包擺放的物品,使得你需要付的代價最少。輸入說明輸入說明 輸入說明輸入說明
輸入的第一行有一個數字
T,代表接下來有幾筆測資。
每筆測資的第一行有兩個正整數,依序是
n、m,意義如題目中所述。
接下來有
n+m
行,每行有一個正整數,第i
個正整數代表第i
個物品重w
i公斤。輸出說明輸出說明 輸出說明輸出說明
對每一筆測資輸出一行長度
n+m、由‘1’、‘2’組成的字串,字串的第 i
個字元代 表第i
個物品要放在哪一個背包當中。各個數字之間不要不要不要不要空格。由於
D-Mail
的容量很小,所以遇到有多種安排都可以達成最小花費時,請輸出字典序最小的安排 字典序最小的安排 字典序最小的安排
字典序最小的安排,以利壓縮。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第7777頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
範例輸入範例輸入 範例輸入範例輸入
3
3 1 2 1 2 1 1 3 2 1 2 1 2 2 2 1 2 1
範例輸出範例輸出 範例輸出範例輸出
1112 2122 1122
數據範圍數據範圍 數據範圍數據範圍
對所有測資,1
≤ T ≤ 10,1 ≤ n, m ≤ 50,000,1 ≤ w
i≤ 1,000,000。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第8888頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第三第三
第三第三題題題題::::掉落的橘子掉落的橘子掉落的橘子(掉落的橘子((題目代碼(題目代碼題目代碼:題目代碼::FALL:FALLFALL)FALL))時間限制)時間限制時間限制:時間限制::10:1010s10sss
相信你已經聽過甦蹦的故事。如果沒有,你可以先回去看看第一題。
話說甦蹦在經過了七七四十九天的分析後發現原來自己並不在結界內,
於是甦蹦趁著某個夜黑風高小心翼翼的繞出了空地,並找到了神殿的入口。
原本以為一切將就此順利,十二萬分感動的甦蹦為著自己的橘子向神殿入口奔 去,然而,龜算不如天算,甦蹦才踏入神殿一步,就發現頂上開始掉下難以計數 的橘子!
說到這橘子,就得提到從二十一年前開始佔據這座神殿的橘子觸手,
不過由於物品掉落速度之快,也不方便費時再多說,就讓我們進入正題吧!
由於橘子觸手的崩解,組成觸手的橘子也開始紛紛掉落。
「『我怎能在別人的苦難面前轉過臉去』,尤其當他是橘子!!」
身為一個曾發誓絕不對橘子見死不救的烏龜,沒錯,就是甦蹦,怎麼能忍受橘子 就這樣掉落地上!?
不幸中的大幸是甦蹦出門時隨身攜帶了他採收傳說中的橘子所用的橘子吸引器,
這個機器十分的特殊,他可以用來吸引任意距離的橘子。
但唯一的問題是,若機器與橘子距離 d, 則吸引該橘子會消耗掉 d 單位的能量!
憑著對橘子的直覺,甦蹦瞬間就發現所有落下橘子的落點其實連成一線,
一飛秒間甦蹦已在腦中建立了一條數線,並將所有橘子的落點座標化(別懷疑,
甦蹦的數學可好的)。
然而正當甦蹦打算動手吸橘子時卻發現……橘子吸引器的能量所剩不多了!!
雖然痛心,甦蹦當機立斷決定只拯救一部分的橘子,
所以他決定找到一個最佳設置橘子吸引器的位置,並且精心的挑選該救的橘子 們。只是他卻不知究竟能拯救多少橘子?
輸入說明輸入說明 輸入說明輸入說明
本題每個輸入檔包含多筆測資,第一行有一個正整數 T (T
≤ 10)
代表測資筆數。每組測資的第一行有
R, L, B
三個非負整數,以一個空白分隔,R
表示總共有幾顆橘子、L表示座標最大值、B表示吸引器剩下的能量。接下來
R
行,每行有一個數字X_i,代表第 i
顆橘子掉落的位置,並保證是一個隨著輸入順序非遞減的序列。
輸出說明輸出說明 輸出說明輸出說明
對於每筆測資輸入一個數字並換行,代表在最佳設置地點可以拯救的橘子數量。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第9999頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
範例輸入範例輸入 範例輸入範例輸入
2
3 10 8 1 4 9
5 20 6 1 2 10 12 14
範例輸出範例輸出 範例輸出範例輸出
3
3
數據範圍數據範圍 數據範圍數據範圍
對於 10%的測試資料,R ≤ 100 對於 20%的測試資料,R ≤ 200 對於 40%的測試資料,R ≤ 3,000 對於 60%的測試資料,R ≤ 400,000
對於所有的資試資料,1 ≤ R ≤ 5,000,000 , 1 ≤ L ≤ 1,000,000,000 , 0 ≤ B ≤ 1018, 1 ≤ X_i ≤ L
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第10101010頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第四第四
第四第四題題題題::::石碑陣石碑陣石碑陣(石碑陣((題目代碼(題目代碼題目代碼:題目代碼::HENGE:HENGEHENGE)HENGE))時間限制)時間限制時間限制:時間限制::2s:2s2s 2s
相信你跟甦蹦很熟。如果不是,請回去看看第三題。
心滿意足的甦蹦一邊吃著橘子吸引器中的橘子一面向神殿更深處走去。
一個轉彎,「啪搭。」甦蹦手中的橘子摔到了地板。不是因為手滑,而是甦蹦為 眼前的景象所震懾。
四處散亂的石碑和遍地摔落的橘子令甦蹦瞠目結舌垂涎三尺。
甦蹦看了看書。「這,這不是傳說中遠古先靈的聖殿嗎!?」他說。
然而和書上不同的是,石碑已變得殘破,倒的倒,裂的裂,甚至連位置也有所不 同。像是曾有什麼巨大的條狀物曾經過。
研讀了文獻,甦蹦發現這些石碑原本是被分成許多群的,只要擺放正確,先靈就 會出現。而這些石碑分群的有一個原則,每個石碑上都由左而右寫著
k
個數字,任兩個石碑若有任意一個相同的子序列長度大於等於三,則這兩個石碑就會被擺 在同一群。
縱使希望不大,甦蹦依舊努力的辨識了每個石碑上的數字,希望能將石碑擺放正 確。只是在開始擺放前,甦蹦必須先計算會將石碑分成幾群,以分配空間。究竟,
石碑會被甦蹦分成幾群呢?
輸入說明輸入說明 輸入說明輸入說明
第一行有兩個正整數
n, k
代表有n
個石碑, 每個石碑上有k
個數字接下來
n
行每行有k
個數字, 代表每個石碑由左而右k
個數字分別是什麼。輸出說明輸出說明 輸出說明輸出說明
請輸出一個數字代表這些石碑會被甦蹦分成幾群。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第11111111頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
範例輸入範例輸入 範例輸入範例輸入
3 4
1 2 3 4 4 3 2 1 2 3 4 1
範例輸出範例輸出 範例輸出範例輸出
2
數據範圍 數據範圍 數據範圍 數據範圍
第一行有兩個正整數 n, k 代表有 n 個石碑, 每個石碑上有 k 個數字
接下來 n 行每行有 k 個數字, 代表每個石碑由左而右 k 個數字分別是什麼。
對於 20% 的測資 n ≤ 100, k ≤ 5 對於 40% 的測資 n ≤ 1000, k ≤ 10 對於 50% 的測資 n ≤ 3000, k ≤ 10 對於 100% 的測資 n ≤ 10000, k ≤ 10
對於 100% 的測資 0 ≤ 石碑上的數字 ≤ 99999
對於 100% 的測資 puts("1"); 與 printf("%d\n",n); 會 WA
後話 後話 後話 後話
甦蹦成功的將石碑分了群,然而也許是石碑的破損,也許是甦蹦辨識的錯誤,神 殿的空氣依然一片寂靜,沒有絲毫動靜……
正當甦蹦傷心之際,卻傳來了腳步聲,兩隻烏龜從殿後的門中走了出來……
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第12121212頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第五題第五題
第五題第五題、、、、烏龜塔地基烏龜塔地基烏龜塔地基(烏龜塔地基((題目代碼(題目代碼題目代碼:題目代碼::BASE:BASEBASE)BASE))時間限制)時間限制時間限制:時間限制::2s:2s2s 2s
那兩隻烏龜叫草甘跟海鞘,草甘曾經是 21 年前的 ITO(疊烏龜奧林匹亞)金牌 得主,卻在 21 年前因為試煉失敗而發瘋,最近得海鞘鼎力相助才回復正常。
草甘聽了甦蹦的訴苦,決定幫助甦蹦尋求先靈協助。他知道古墨西哥遠古先靈住 在離地表七七四十九公里的高空上,要拜訪他們必須要蓋一座巴比倫烏龜塔。
蓋一座巴比倫烏龜塔是非常麻煩的,需要 1000 黃金 1000 石頭 1000 食物和在一 塊空地上舉行一個 K 階段的儀式。草甘挑選了一塊空地,並將之分割成 N×M 的棋 盤格,計算出每格的邪魔度。(但你現在並沒有閒情逸致想仰望夜空)
每個階段都要指定一塊跟空地邊緣平行的矩形鋪上魔法陣,並且草甘要站在魔法 陣外的其中一個格子上唸古墨西哥咒語(『嗚啦啦啦嗚啦啦嗚啦阿拉拉阿嚕嚕啦 啦嚕嗚呱呱嗚嗚啦』,在這個場合就算他打『AEGIS』也沒有用)
唸咒語的同時草甘要灌注法力,這個法力要比除了地基和草甘所除了地基和草甘所除了地基和草甘所除了地基和草甘所站的格子外的所站的格子外的所站的格子外的所站的格子外的所 有格子有格子
有格子有格子的邪魔度都還大,否則他會被這咒語反噬。
草甘當然希望儀式成功,但他也不希望消耗太多年的功力。給你每個階段的魔法 陣位置,請你分別算出當他站在最佳位置的情況下,該階段的法力至少要多少。
(亦即,每次魔法陣位置是給定的,但草甘站的位置可以任意決定)
輸入說明輸入說明 輸入說明輸入說明
每個檔案僅有一組測試資料。
檔案包含許多行,第一行依序有三個正整數 N, M, K,如敘述所述。
接下來會有 N 行每行有 M 個非負整數。
對所有 1≤i≤N 且 1≤j≤M,第 i 行第 j 個數字表示(i,j)這格的邪魔度 JM(i,j)。
接下來有 K 行,每行有四個正整數 N1, N2, M1, M2。
表示第 i 階段的魔法陣是一個左上角在(N1,M1)、右下角在(N2,M2)的矩形。
你可以假定任意一個都魔法陣不會跟空地一樣大或超出空地範圍。
※棋盤格的左上角為(1,1)、左下角為(N,1)、右下角為(N,M)。
輸出說明輸出說明 輸出說明輸出說明
輸出包含 K 行,每行一個個非負整數 Ai 表示第 i 階段至少需要多少法力值。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第13131313頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
範例輸入範例輸入 範例輸入範例輸入 5 5 3 1 2 3 4 5 3 1 0 2 3 1 2 3 4 5 2 1 8 2 2 1 1 1 1 1 2 4 2 4 1 4 2 5 3 3 3 3
範例輸出範例輸出 範例輸出範例輸出 5
2 5
數據範圍數據範圍 數據範圍數據範圍
對於 100%的測試資料,1 ≤ N1 ≤ N2 ≤ N、1 ≤ M1 ≤ M2 ≤ M。
對於 20%的測試資料,N, M ≤ 50。
對於 40%的測試資料,K ≤ 2000。
對於 70%的測試資料,K ≤ 20000。
對於對於
對於對於 100%100%100%的測試資料100%的測試資料的測試資料的測試資料,,,,3 3 3 3 ≤ N, M N, M N, M N, M ≤ 700700700700 且且且 K 且K K K ≤ 555500000000000000000000。。。。 你可以假定任一格的邪魔度都可以用 32 位元有號整數儲存。
提示提示 提示提示
※讀入資料量非常大,請使用較快速的輸入函式。例如 C/C++中的 scanf()。
下圖依序是對範例 3 個階段的解釋,
烏龜表示『你』站的最佳位置,驚嘆號表示剩下格子中最大邪魔度的地點。
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第14141414頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
第六第六
第六第六題題題題、、、、小烏龜爬高塔小烏龜爬高塔小烏龜爬高塔 2小烏龜爬高塔222((((題目代碼題目代碼題目代碼題目代碼::::NSTOWERNSTOWERNSTOWERNSTOWER2222))))時間限制時間限制時間限制時間限制::::3s3s3s3s
「轟隆」「轟隆」「轟隆」
搜刮了古墨西哥神器你的一步出神殿便為接連不斷的雷聲所驚懾。
你定神一望,發現晴空萬里的天空中有一朵突兀的烏雲,籠罩著遠方一片空地。
「這樣絕對很奇怪阿?」你這麼說著,一方小心翼翼的朝著那片空地前進……
「轟隆」「轟隆」「轟隆」
隨著儀式的進行,一道又一道強勁的落雷開始打在烏龜們的四周。
草甘熟悉的唸著咒語,一方敏捷的在空地中跳來跳去,儀式進行的速度越來越 快,周圍的落雷也越來越多。
突然草甘一個縱身,躍到了空地正中央,仰天乾一杯溫開水大喊了一句「嗚啦啦 啦嗚啦啦嗚啦阿拉拉阿嚕嚕啦啦嚕嗚呱呱嗚嗚啦!!」。
只見一道強光射穿了空中的烏雲,直落在草甘的面前。正當烏龜們困惑發生什麼 事情時,地面竟開始振動!
光柱照射之處開始隆起,土石剝落開始剝落,出現在眼前的是––沒錯,一座世 界奇觀傳說中的巴比倫烏龜塔。
縱使天空莫名打下一道光柱,地面莫名開始振動,什麼再嚇不了已死過一次的你。
你剝開了擋住視線的最後一枝葉,映入眼簾的卻是一座高聳的塔與幾隻烏龜。
「事情不是這樣的吧?走到哪裡都有烏龜?」你想著,一邊向前去輕輕的敲了塔 前那隻烏龜的龜殼……
經過了一連串的交涉,你發現原來是這群烏龜弄出了方才的一陣騷動,而現在這 群烏龜想要爬上高塔,卻苦無方法。
正打算陷入思考模式時,你想起了你費盡千辛萬苦搜刮來的一項神器––古墨西 哥羽毛。「似乎這羽毛戴上頭後身體會變得非常輕盈」一邊說著你在烏龜們的頭 上各插上了一根羽毛。
====== 題目從本行開始,上面敘述可以跳過 ======
果其不然,戴上羽毛的烏龜們變得身輕如雁,心急的甦蹦,馬上分析出了通往塔 的平台共有 N 塊。我們定義若甦蹦跳上平台 A 後可以跳到平台 B,那我們稱平台 A 是平台 B 的前繼、平台 B 是平台 A 的後繼。
甦蹦使用他的快速塔方程式(Formula : Fast Tower, FFT)進行下兩點的檢驗:
1. 除了高塔頂沒有後繼外,每個平台都只有恰好一個後繼。
2. 每個平台的前繼不超過兩個不超過兩個不超過兩個不超過兩個。
甦蹦稍作檢驗,發現完全符合上述兩條特性,他十分開心,大步向前跳──
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第15151515頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
「且慢!」
甦蹦的動作暫停了,他往後一看,叫住他的正是 DBTF。
DBTF 似乎是從傳說中的橘子園跑過來的,他氣喘吁吁地對甦蹦說:
「烏龜之神託夢給我說,塔有可能是假的!
你仔細看,每塊平台上面都有一個不重複不重複不重複不重複的、[1, N]內的正整數編號。
如果這座塔是真的,那它一定要符合二分搜索性質二分搜索性質二分搜索性質二分搜索性質,也就是他得是一棵 BST(Binary-Search Tree)。」
海鞘看甦蹦一臉疑惑──雖然甦蹦是數學哥,但圖論卻不太行──便補充道:
「DBTF 的意思是,它還必須符合以下兩點性質才是真的烏龜塔:
3. 對於一個恰有兩個前繼的平台 S 而言,假設他兩個前繼分別叫 A, B 並設 A 的編號比 B 的編號小,則必須滿足所有經過 A 跳到 S 的平台編號都比 S 小、所有 經過 B 跳到 S 的平台編號都比 S 大。
4. 對於一個洽有一個前繼的平台 S 而言,能跳到它的所有平台編號不是都比 S 大就是都比 S 小。」
現在甦蹦一行人面前的塔符合性質 現在甦蹦一行人面前的塔符合性質 現在甦蹦一行人面前的塔符合性質
現在甦蹦一行人面前的塔符合性質 1111 和和和 2和222,,,,請幫甦蹦檢驗是否符合性質請幫甦蹦檢驗是否符合性質請幫甦蹦檢驗是否符合性質請幫甦蹦檢驗是否符合性質 3333 和和和和 4444。。。。
輸入說明輸入說明 輸入說明輸入說明
第一行有一個正整數 T,表示接下來有 T 座烏龜塔要檢驗。
每座塔包含兩行,第一行有一個正整數 N 表示該烏龜塔有幾個平台。
第二行有 N 個正整數,第 i 個正整數 Ai 表示編號 i 平台的後繼編號為 Ai。
若 Ai=0 表示編號 i 為高塔頂。保證 Ai≠i。
輸出說明輸出說明 輸出說明輸出說明
對每座塔輸出一行,"True"表示該塔是真的,"Fake"表示是假的。(不含雙引號)
範例輸入範例輸入 範例輸入範例輸入 2
7
2 4 2 0 6 4 6 7
2 5 2 6 0 5 3
範例輸出範例輸出 範例輸出範例輸出 True Fake
20112011
20112011年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽年建國中學資訊科學科能力競賽 程式設計試題卷程式設計試題卷程式設計試題卷程式設計試題卷 第第第第16161616頁頁頁頁 / / / / 共共共共16161616頁頁頁頁
數據範圍數據範圍 數據範圍數據範圍
對於 20% 的測資 N ≤ 10 對於 50% 的測資 N ≤ 300
對於 100% 的測資 1 ≤ N ≤ 30000; T ≤ 10
提示提示 提示提示
左邊是第一座塔的圖,是個合法的 BST
右邊是第二座塔的圖,由於 7(>5)和 2(<5)都可以透過平台 2 跳到平台 5,所以 它並不是一個合法的 BST。(但若將圖中的 7 和 4 交換位置便合法)
尾聲尾聲 尾聲尾聲
DBTF 望了一眼烏龜塔,「應該沒有問題了,你們要上去嗎。」
草甘看了他一眼,「事情總要有個決定的。」說完立刻跨出前腳向前,一陣金光 後草甘消失在眾人(龜)的面前。
海鞘看到草甘不見似乎有點嚇到。「這樣絕對很奇怪啊!!你們都相信他的話 嗎?」海鞘畢竟比較多疑一點,用腳在身前畫了一道弧形,拒絕向前。
『你』聳了聳肩,「不管你信不信,反正我是信了!」接著也化成一道金光。
甦蹦拍了拍海鞘的龜殼,「你要知道,奇蹟和魔法都是存在的!」接著一個躍身 向前。轉眼間古墨西哥神殿裡就只剩下 DBTF 和海鞘了。
海鞘望了望 DBTF,「你不上去嗎?」
DBTF 看著海鞘,「觸~~」接著甩了甩他的雙手:「~~(Q_Q)~~」
海鞘兩腳一攤,「也好,反正我本來就對這什麼墨西哥拉拉毛神殿沒興趣。」
他望了望高聳入雲的世界奇觀烏龜塔,「是時候該離開了呢。」