2014 網際網路程式設計全國⼤賽
⾼中組決賽
•
本次⽐賽共8
題,含本封⾯共24
⾴。•
全部題⽬的輸⼊都來⾃標準輸⼊。輸⼊中可能包含多組輸⼊,依題⽬敘述分隔。
•
全部題⽬的輸出皆輸出到螢幕(
標準輸出)
。輸出和裁判的答案必須完全⼀致,英⽂字⺟⼤⼩寫不同或有多餘字元皆視為答題錯誤。
•
⽐賽中上傳之程式碼,請依照以下規則命名:
1.
若使⽤C
做為⽐賽語⾔則命名為pa.c,
pb.c,
以此類推。2.
若使⽤C++
做為⽐賽語⾔則命名為pa.cpp,
pb.cpp,
以此類推。•
cin輸⼊經測試發現速度遠慢於scanf輸⼊,答題者若使⽤需⾃⾏承擔因輸⼊速度過慢導致
Time Limit Exceeded
的⾵險。•
每⼀題的執⾏時間限制如下表所⽰。執⾏期間該電腦不會有別的動作,也不會使⽤鍵盤或滑⿏。
題⽬名稱 執⾏時間限制 題⽬A 曉涵的禮物
5
秒 題⽬B 胖胖天喝⼤可3
秒 題⽬C 北⽃遺跡1
秒 題⽬D 蚯蚯(扭)10
秒 題⽬E 鋼鐵旗幟競賽1
秒 題⽬F 寧寧切蚯蚯2
秒 題⽬G 蚯蚓的智慧1
秒題⽬H
H Game 12
秒2014 網際網路程式設計全國⼤賽 解題程式輸⼊輸出範例
C
程式範例:1 #include <stdio.h>
2 int main(void)
3 {
4 int cases;
5 scanf("%d", &cases);
6 for (int i = 0; i < cases; ++i)
7 {
8 long long a, b;
9 scanf("%I64d %I64d", &a, &b);
10 printf("%I64d\n", a + b);
11 }
12 return 0;
13 }
C++
程式範例:1 #include <iostream>
2 int main()
3 {
4 int cases;
5 std::cin >> cases;
6 for (int i = 0; i < cases; ++i)
7 {
8 long long a, b;
9 std::cin >> a >> b;
10 std::cout << a + b << std::endl;
11 }
12 return 0;
13 }
題⽬ A 曉涵的禮物
執⾏時間限制: 5秒
⼀年⼀度的聖誕節⼜要到了,曉涵⼀如往常地,⼀邊懷抱著這整年來對於朋友們的感謝,⼀
邊想著要送朋友們什麼聖誕禮物。其中,尤其是從⼩到⼤⼀起成⻑的青梅⽵⾺,曉涵想要送⼀份
「象徵回憶」的特別禮物給他。
之前在整理房間時,曉涵從抽屜裡找到了幾個⼩時候⼤家曾⼀起玩過的積⽊塊。由於當時⽣產 的廠商已經不在,這些積⽊塊也實質上地「絕版」了。曉涵思考了⼀下之後,決定選擇幾個特殊形 狀的積⽊塊送給她的多年知⼼好友。
當然,禮物是要好好包裝的,對此曉涵決定使⽤簡約⼜不失優雅的⻑⽅形盒⼦來裝她精⼼挑選 的積⽊塊。但是問題來了,由於積⽊塊⻑相奇形怪狀,所以⼀時之間曉涵很難將積⽊塊們全部裝 進盒⼦裡。雖然只要⽤更⼤的盒⼦就可以輕鬆放進所有選擇的積⽊塊,但是那樣打開時會有空洞 感,⽽且⼩巧的盒⼦更有珍藏之回憶的感覺,故曉涵不想直接買太⼤的盒⼦。曉涵喜歡讓盒⼦的
⾼度與積⽊同⾼,當然她也不能接受把盒⼦加⾼,所以積⽊塊無法「疊起來」放進去。
但是,她也不希望買的盒⼦其實不管怎麼裝都不可能裝得下。因此,給定每個要放進盒⼦的積
⽊形狀,曉涵決定請你幫忙寫⼀⽀程式,找出能夠將所有積⽊塊放進盒⼦裡的⽅法。
Figure 1:
第⼀筆範例輸⼊的最⼩字典順序可⾏放置⽅案。(
此⽅案對應到字串AAAAZAABBBAABDBCCBDBCZBBB)
■ 輸⼊檔說明
輸⼊的第⼀⾏有⼀個正整數
T
,代表測試資料的筆數。第⼀⾏有三個正整數
R, C, N
,R
和C
分別代表該矩形盒⼦的⻑和寬。N
則代表曉涵所選擇之 要放進盒⼦裡的積⽊塊數量。第⼆⾏開始將依序描述N
個積⽊塊的⻑相。每個積⽊塊皆以
4
×4
的點陣網格描述,即每個積⽊塊佔四⾏,每⼀⾏各有四個字元描述。對 於網格中的每個位置,若該位置為積⽊塊,則以該積⽊塊的⼤寫英⽂字⺟代號表⽰之;若不是,則以「.」
(
不含引號)
表⽰之。每個積⽊塊皆恰好為⼀個連通塊,並且,每個給定之描述積⽊塊的4
×4
的點陣網格中保證只有⼀個英⽂字⺟代號的連通塊。每個積⽊塊的資訊之間以⼀⾏「=」(
不 含引號)
隔開。• T
≤30
• 1
≤R, C
≤6
• 1
≤N
≤5
•
積⽊塊的可能代號為 A到Y的⼤寫英⽂字⺟。•
不同的積⽊塊的代號皆不同。•
積⽊塊可以被順時針90
度、180
度、270
度旋轉之後再放進盒⼦裡。•
積⽊塊由於正反⾯樣式不同,故不可翻轉之。■ 輸出檔說明
對於每⼀筆測試資料,請輸出能夠將所有
(
共N
個)
積⽊塊都放進指定⼤⼩之盒⼦中的⽅案(
即 放置後的點陣網格,共R
⾏,每⾏C
個字元)
。所有的測試資料都保證⼀定⾄少有⼀組可⾏的放 置⽅案。為了保持標準答案的唯⼀性,請輸出字典順序最⼩的⽅案。⽅案的字典順序定義為:將點陣網 格從第⼀⾏開始⾄最後⼀⾏逐⾏串起所產⽣之字串的字典序。空⽩的格⼦視為⼤寫英⽂字⺟Z。
詳細例⼦可以參考上⾴例圖。
不同筆測試資料的輸出之間請以⼀⾏「#」
(
不含引號)
隔開。■ 範例輸⼊
2 5 5 4 AAAA AA..
AA..
....
= .BBB .B.B .B.B .BBB
= ....
..C.
.CC.
....
= ....
....
D...
D...
6 4 3 A...
AA..
AAA.
AAAA
= ....
GGG.
.G..
.G..
= ....
....
.C..
....
■ 範例輸出
AAAA.
AABBB AABDB CCBDB C.BBB
# AAAA AAAC AAG.
A.G.
.GGG ....
題⽬ B 胖胖天喝⼤可
執⾏時間限制: 3秒
還記得胖胖天⼤⼤薯嗎?⾃從胖胖天為了達成他天天胖的野望,每天都以吃垮胖胖天國的⿆當 當為⽬標⽣活著。雖然胖胖天曾經發現⼀個驚⼈的事實——胖胖天國內⿆當當同⼀天裡的⼤薯的總 量是固定的,但如此多量的薯條還是讓胖胖天變成了胖胖胖天,使得周圍的⼈都開始擔⼼他的健 康。因此,⿆當當的正妹店員湯湯決定限制胖胖胖天不能吃薯條,除⾮他⼜重新變回了胖胖天。
胖胖胖天為了繼續朝天天胖的野望前進,決定要恢復健康成為胖胖天,但不吃⿆當當⼜讓他⼗
分糾結,於是胖胖胖天決定要喝⼤可!隨著時間的過去,胖胖胖天卻⼀點成效都沒有感受到,為 此他⾮常惶恐,於是他去請教了他的好朋友胖胖兮到底該怎麼喝⼤可才能變回胖胖天。
為了幫助胖胖胖天,胖胖兮苦思許久終於想出了⼀個好⽅案。他規定胖胖胖天每天不能喝超過
N
單位的⼤可,且當第i
天他若喝了A
i 單位的⼤可,他在從第i + 1
天開始所喝的⼤可單位總和 不得超過A
i單位。在此限制下,終有⼀天,胖胖胖天將會無法再喝⼤可,⽽那天便是他重回胖胖 天的時刻。我們以
A
1, A
2, . . . , A
M 來表⽰胖胖天每天喝的⼤可單位數,若⼀種喝法滿⾜胖胖兮說想出的好⽅案,則該喝法滿⾜以下兩個性質:
1. 1
≤A
i ≤N 2.
∑Mj=i+1
A
j ≤A
i,即(A
i+1+ A
i+2+ . . . + A
M)
≤A
i但聰明的胖胖胖天發現這樣貌似不是只有⼀種⽅案可以實⾏,於是他向胖胖兮詢問:「胖胖兮 啊!這好像不是只有⼀種⽅案耶,這麼多種⽅案我到底該怎麼喝阿?」
胖胖兮:「經過我胖胖的計算,可⾏的⽅案應該不超過
514
種吧,你隨便挑⼀種就可以了吧!」胖胖胖天聽了很不開⼼:「怎麼可能只有那麼少種,這少說有
50216
種吧?當我列出所有⽅案 挑⼀種最喜歡的來實⾏時我都要渴死了!」於是兩邊起了爭議⽽吵起了架來,為了喝⼤可的⽅案數⽽傷和氣實在太不值得了!好⼼的你可 以告訴他們到底有多少種⽅案嗎?
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
,代表測試資料的筆數。每⼀組測試資料的有⼀個正整數
N
於⼀⾏,表⽰每⽇的⼤可單位上限。• T
≤100
• 1
≤N
≤100000
■ 輸出說明
對於每⼀筆測試資料請輸出⼀個數字表⽰胖胖天到底有幾種⽅案可以實⾏。由於答案可能很
⼤,所以請你輸出答案除以
1000000007
的餘數。■ 範例輸⼊
3 1 2 3
■ 範例輸出
2 6 12
■ 範例說明
• N = 1
時,{1
},{1, 1
}皆是可⾏⽅案。• N = 2
時,{1
},{1, 1
},{2
}, {2, 2
},{2, 1
}, {2, 1, 1
}皆是可⾏⽅案。題⽬ C 北⽃遺跡
執⾏時間限制: 1秒
陰陽的概念,源⾃古代中國⼈⺠的⾃然觀。古⼈觀察到⾃然界中各種對⽴⼜相⽣的⾃然現象,
如天地、⽇⽉、晝夜、寒暑等,⽽以哲學的思想⽅式,歸納出「陰陽」的概念。中國的傳統學術 中,有所謂「孤陰不⽣,獨陽不⻑」及「無陽則陰無以⽣,無陰則陽無以化」的觀念。北⽃遺跡 便是建⽴在此理論上所建的古⽼遺跡,傳說北⽃遺跡深處藏著宇宙萬物的真理,只要參悟此真理,
便能上知天⽂下知地理,預測未來的⾛向。⾝為陰陽家的狂全為了成為有史以來最偉⼤的陰陽家 之⼀,來到了北⽃遺跡。
在通過⼀系列的考驗後,狂全突破了層層難關來到了北⽃遺跡的盡頭,盡頭有著⼀尊雕像,只 要解開這個最後的謎題,狂全便可以參悟宇宙萬物的真理。在狂全觀察許久後終於發現雕像周圍 散發著不協調的氣息,唯有調解此不協調之氣息,狂全才看得到雕像背後的真理。
於是狂全凝結了許多陽粒⼦與陰粒⼦,每顆陽粒⼦擁有
K
1 的能量,每顆陰粒⼦擁有K
2 的能 量。當N
顆陽粒⼦與M
顆陰粒⼦散落在⼤氣之中時,會產⽣N
×K
1+ M
×K
2的不協調度。⾝為⼀位陰陽家,便要有調解此不協調度之能⼒。狂全知道陰陽存在著互根互依,互相轉化的關係,
陰中有陽,陽中有陰,任何⼀⽅都不可能離開另⼀⽅單獨存在。每當
N
顆陽粒⼦與M
顆陰粒⼦在⼀起時,他們能激發出巨⼤的能量。陰陽家可以經由修煉的⼒量產⽣
N
×M
的協調度,當協調 度與不協調度⼀樣⼤時,便可調解雕像周圍之氣息。除了是⼀位陰陽家,狂全也是⼀位數學家。由於陽粒⼦與陰粒⼦的能量是固定的,所以狂全也 很想知道到底有幾種陰陽粒⼦的產⽣⽅法可以調解雕像周圍的氣息。
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
表⽰有幾組測試資料。每⼀筆測試資料有兩個正整數
K
1, K
2 於⼀⾏,分別表⽰陽粒⼦與陰粒⼦的能量。• T
≤1000
• 1
≤K
1, K
2 ≤1000000
■ 輸出說明
對於每⼀筆測試資料,請輸出⼀個數字於⼀⾏表⽰答案,我們保證答案⼩於
2
31。■ 範例輸⼊
5 1 2 2 3 4 7 8 6 101 6
■ 範例輸出
2 4 6 10 8
■ 範例說明
•
對於第⼀筆範例輸⼊的答案為(3, 3) , (4, 2)。
•
對於第⼆筆範例輸⼊的答案為(4, 8) , (5, 5) , (6, 4) , (9, 3)。
•
對於第三筆範例輸⼊的答案為(8, 32), (9, 18), (11, 11), (14, 8), (21, 6), (35, 5)
。•
對於第四筆範例輸⼊的答案為(7, 56) , (8, 32) , (9, 24) , (10, 20) , (12, 16) , (14, 14) , (18, 12) , (22, 11), (30, 10), (54, 9)
。•
對於第五筆範例輸⼊的答案為(7, 707) , (8, 404) , (9, 303) , (12, 202) , (107, 107) , (208, 104) ,
(309, 103) , (612, 102)。
題⽬ D 蚯蚯(扭)
執⾏時間限制: 10秒
蚯蚓是⼀種奇妙的⽣物,喜歡扭來扭去,不時還會變⻑,⾮常之可愛。其中⼜以臺⼤特有的蚯 蚯最為特殊,牠甚⾄可以把⾃⼰⾝體中其中⼀段整個反過來!蚯蚯的⾝體是⼀節節的,⽽且每節 會有不同的特徵。為了更好地觀察蚯蚯,我們以⼀個⼩寫英⽂字⺟來表⽰⼀節的特徵。現在你收 到⼀本蚯蚯觀察⽇誌作為⽣⽇禮物,你覺得⾮常開⼼。觀察⽇誌中記錄了蚯蚯⼀開始的⻑度
n、
⼀開始每節的特徵
s
1, s
2, . . . , s
n,以及m
個事件。事件可以分為三種:1.
觀察s
l, s
l+1, . . . , s
r的特徵,並在⽇誌記錄下來。2.
蚯蚯變⻑!牠的第l
節到第r
節複製了⼀份,變成
s
1, s
2, . . . , s
l, s
l+1, . . . , s
r, s
l, s
l+1, . . . , s
r, s
r+1, . . . , s
n。3.
蚯蚯扭扭!牠的第l
節到第r
節反了過來,變成
s
1, s
2, . . . , s
l−1, s
r, s
r−1, . . . , s
l, s
r+1, s
r+2, . . . , s
n。你發現,即使⽇誌中沒有記錄第⼀種事件的結果,你也可以還原它。為了更好的理解蚯蚯的⽣
⻑,你決定寫個程式來還原每次第⼀種事件的結果,再和⽇誌⽐較看看是否相同。
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
,代表測試資料的筆數。每⼀組測試資料開始有⼀⾏兩個整數
n, m,代表⼀開始蚯蚯的⻑度跟⽇誌中有幾個事件。接
下來⼀⾏有⼀個⻑度為n
的字串s,代表⼀開始蚯蚯每節的特徵。接下來 m
⾏,每⾏有三個數字e, l, r,代表事件的種類及發⽣在哪幾節。
• 1
≤T
≤3
• 1
≤n, m
≤10000
• 1
≤e
≤3
• 1
≤l
≤r
≤當前蚯蚯⻑度•
保證s
中只會有⼩寫英⽂字⺟,且蚯蚯⻑度永遠不超過10
9 節。■ 輸出說明
對於每個第⼀種事件請輸出⼀⾏⼀個字串,代表那時蚯蚓第
l
節到第r
節的特徵。保證總輸出⼤⼩不會超過
5MB
。■ 範例輸⼊
1 6 5 abcxyz 1 1 6 2 2 4 1 1 8 3 3 8 1 2 9
■ 範例輸出
abcxyz abcxbcxy byxcbxcz
■ 範例說明
•
⼀開始蚯蚯⻑相是 abcxyz。•
複製第⼆到四節後變為abcxbcxyz。•
反轉第三到⼋節後變為abyxcbxcz。題⽬ E 鋼鐵旗幟競賽
執⾏時間限制: 1秒
卡恩和⽪⽪是兩個很喜歡玩電視遊樂器的⼩朋友,他們總是相約好在假⽇時於線上對戰。他們 兩⼈不僅年紀相同,實⼒也相當,不論是球類遊戲或是賽⾞遊戲,他們的表現都⾮常接近,也因 此兩⼈成為了好夥伴兼競爭對⼿。
最近,在次世代遊戲主機上出了⼀款射擊遊戲,背景是未來的⼈類要對抗外星種族的敵⼈。在 這款遊戲中,有⼀個玩家對戰
(Player versus Player)
的模式稱作「鋼鐵旗幟」,其內容是兩名玩 家藉由互相佔領據點來決定勝負。這⼀天,卡恩⼀如往常的跟⽪⽪約好了在家玩遊戲對戰,⽽本 次的⽬標正是⽬前最受歡迎的「鋼鐵旗幟」模式。由於⽪⽪玩射擊遊戲的經驗⽐較充⾜,因此兩個⼈決定⽤以下的規則來決定這次的勝負。⾸
先,兩個⼈會⽐賽
N
場「鋼鐵旗幟」競賽,⽽每場獲勝得10
分積分、每次平⼿得5
分積分,若輸 了則該場沒有積分。最後的勝利由N
場的總積分決定。然⽽,就如同先前說的,⽪⽪因為較熟悉 此類遊戲故兩⼈決議「每次卡恩輸掉的時候,就可以累積⼀個指⽰物(marker)
」,⽽指⽰物將於 下次卡恩獲勝時兌換成積分,每個指⽰物皆會被換成5
分積分。但是,卡恩在任意時間當下都最 多只能持有5
個指⽰物。也就是說,如果卡恩⼿上已經持有5
個指⽰物,則就算再輸掉也不會得 到更多的指⽰物,直到下次得到勝利使得指⽰物被清空為⽌。現在,卡恩和⽪⽪已經⽐完了
N
場⽐賽。不過他們在⽐賽中太過專⼼,以⾄於不⼩⼼在途中 就忘記計分,甚⾄最後他們根本就放棄計分了。不過,⽪⽪很聰明地知道最後的總積分可以從遊 戲中的各場次輸贏記錄推得之。但由於他們的計分規則⽐較特殊(
如之前所⽰)
,所以不容易計算。因此,他們想請你幫忙寫⼀⽀程式:給定卡恩的輸贏場次記錄,請求出卡恩和⽪⽪最後的總積分 分別為何。
■ 輸⼊檔說明
輸⼊的第⼀⾏有⼀個正整數
T
,代表測試資料的筆數。每筆測試資料都恰包含兩⾏,第⼀⾏有⼀個正整數
N
,表⽰卡恩和⽪⽪⽐完的場次數。第⼆⾏則有⼀個⻑度為
N
的字串,其中可能會出現的字元有「W」、「L」和「D」,分別依序代表卡恩該場⽐賽獲勝、落敗、平⼿。第
i
個字元即為第i
場⽐賽之結果( 1
≤i
≤N )
。• T
≤500
• 1
≤N
≤1024
■ 輸出檔說明
對於每⼀筆測試資料,請輸出兩個整數於⼀⾏並以⼀個空⽩隔開,其中第⼀個整數代表卡恩的 最後總積分,第⼆個整數代表⽪⽪的最後總積分。
■ 範例輸⼊
3 5 WWWDW 5 WLLLD 10
WLLLLLLWLW
■ 範例輸出
45 5 15 35 60 70
題⽬ F 寧寧切蚯蚯
執⾏時間限制: 2秒
蚯蚯是⼀種⽣活在喵星的特有⽣物。牠沒有四肢,⾝體由許多環節組成,看起來很像蚯蚓,但 蚯蚯沒有突出的⽣殖環,且每個環節上都會有⼀些神奇的花紋。
蚯蚯環節上的花紋⾮常特別,⼀共有⼆⼗六種,⽽且每種花紋都是對稱的。也就是說,就算你 把蚯蚯的某個環節反過來,整隻蚯蚯看起來的仍然⼀樣。如果有⼀隻蚯蚯⾝上的花紋是頭尾對稱 的(第⼀個花紋跟最後⼀個同⼀種、第⼆個跟倒數第⼆個同⼀種,以此類推),那麼你根本無從判 斷這隻蚯蚯的頭尾,這種蚯蚯就被稱為蚯蚯蚯。
有趣的是,蚯蚯的⽣命⼒⾮常強韌。如果把蚯蚯從兩個環節之間切斷,只需要經過七七四⼗九 天,兩端的傷⼝就會癒合,各別變回健康的蚯蚯(切掉的部份不會⻑回來)。這意指⼀隻蚯蚯是可 以被切成多隻蚯蚯的(先切成兩隻,癒合後再繼續切)。要是切點選擇得當,⼀隻蚯蚯還可能切成 多隻蚯蚯蚯(切的過程中,切出的蚯蚯可以不是蚯蚯蚯,只要最後每⼀段都是蚯蚯蚯就好)。
寧寧⾝為⼀個喜歡數學與⽣物的⾼中⽣,對蚯蚯竟能被切成蚯蚯蚯感到⼗分有趣,因此寧寧決 定拿這個問題來做研究。由於快速判斷⼀隻蚯蚯是不是蚯蚯蚯太容易了,⽽快速判斷⼀隻蚯蚯能 不能被切成兩隻蚯蚯蚯也被她的好朋友芷芷解決了,寧寧決定選定⼀個難題來研究:
給你⼀隻蚯蚯,你能不能快速的判斷,牠能否恰好被切成三隻蚯蚯蚯呢?
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
,代表測試資料的筆數。每ㄧ筆測試資料包含⼀個由⼩寫英⽂字⺟組成的字串
S
代表⼀隻蚯蚯,其中每種英⽂字⺟各代 表⼀種花紋。• T
≤20
• 3
≤ |S
| ≤200000
■ 輸出說明
對每⼀筆測試資料,若是那隻蚯蚯能恰好被切成三隻蚯蚯蚯,請輸出⼀⾏「Yes」,否則輸出
⼀⾏「No」。
(
輸出不含引號)
■ 範例輸⼊
3 aaa abcbcb aaabcbcb
■ 範例輸出
Yes No Yes
題⽬ G 蚯蚓的智慧
執⾏時間限制: 1秒
很多年前,蚯蚓王國受到鴨⼦王國的⼊侵。由於鴨⼦是蚯蚓的天敵之⼀,按照歷史記述⼀隻鴨
⼦可以滅掉⼀整團蚯蚓。雖然蚯蚓數量⾮常多,但付出慘烈的代價之後,只稍微阻擋了鴨⼦的⼊
侵腳步。
在⼀次⾼層的閉⾨會議後,蚯蚓們做出他們歷史上最⼤的決定:舉國遷移。由蚯蚓國⾸開先 例,隨之還有許多同樣受到鴨⼦迫害的昆蟲,也跟著做出⼀樣的決定。史稱「昆蟲⼤遷徙」。
遷移後的蚯蚓維持了數百年,但近年鴨⼦王國不斷擴張,已經逐漸壓上蚯蚓國的邊境。有了歷 史的教訓和近年動物學的研究,蚯蚓們知道抵抗天敵是不智的。
⼀籌莫展之際,突然鴨⼦國派來使者,表⽰要進⾏連年征戰的鴨⼦們膩了,想要進⾏和談。雖 然蚯蚓們⼀時傻眼,不知道鴨⼦們的葫蘆裡賣的是什麼藥,但是這是除了再次遷徙外的唯⼀辦法 了。蚯蚓們在無可奈何之下派出了蚯蚓國最聰明的兩隻蚯蚓,蚯蚯和蚓蚓,前往鴨⼦國處理和談 事宜。
到了鴨⼦國,蚯蚯和蚓蚓發現鴨⼦們喜歡⼀個考驗運氣和默契的試煉,鴨⼦國的國王亦然。
「我們來進⾏這個神聖的試煉。如果你們的默契和運氣受到我們的認可,我們就放過你們。」鴨
⼦國王如是說。
這個試煉主要是要讓兩隻蚯蚓個別猜硬幣,並且根據其結果評分,由此可以看出他們的運氣和 默契綜合表現。在試煉開始前,鴨⼦國王告知了計分⽅式:
•
如果兩隻蚯蚓都猜對了,則得a
分。•
如果只有其中⼀隻猜對,則得b
分。•
如果兩隻都猜錯,則得c
分。試煉總共有
n
個回合,每⼀回合會根據以下的流程進⾏:1.
參加試煉的兩隻蚯蚓可以討論這回合的戰術,討論完畢之後,兩隻蚯蚓必須被關掉兩個房 間。然後接下來都不能有任何形式的溝通。2.
接著鴨⼦國王會在兩個相同的聖杯A , B
裡,各擲⼊⼀枚正反⾯可以區別的⾦幣。⾦幣會在 聖杯裡頭滾動,停下時會有⼀⾯朝上。由於鴨⼦國的⼯匠⼿藝相當精湛,這兩個硬幣落在聖 杯裡出現正反⾯的機率是⼀樣的。3.
鴨⼦國王會把⼀個聖杯拿給蚯蚯看,並把另⼀個聖杯拿給蚓蚓看。所以兩隻蚯蚓會各別知道 其中⼀個聖杯的⾦幣的狀態。4.
接下來就是考驗默契的時刻了,兩隻蚯蚓加起來就知道兩個硬幣的狀態,但他們必須在不可 交流的情況下,個別猜另⼀個聖杯裡的⾦幣是正⾯還是反⾯。請注意兩隻蚯蚓在做決策的當 下,並不知道另⼀個蚯蚓的作答情形。5.
鴨⼦國王在得到兩隻蚯蚓的答案之後,便會告訴他們這回合的試煉結果。當然他們可以從中 計算這回合的得分。最後
n
個回合的總分,就是蚯蚯和蚓蚓的得分。明天就要進⾏這個重⼤的測驗了。事關蚯蚓國的存亡,你想要預測如果蚯蚯和蚓蚓每回合都能 採取最佳策略的情況下,總分的期望值會是多少?
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
代表測試資料的筆數。每⼀筆測試資料僅有⼀⾏,內有
4
個整數n, a, b, c
,分別表⽰測驗會持續n
回合,且兩隻蚯蚓 都猜中將獲得a
分,僅其中⼀隻蚯蚓猜中則獲得b
分,如果都沒猜中則獲得c
分。• T
≤500
• 0
≤n
≤100
•
−100
≤a, b, c
≤100
■ 輸出說明
對於每⼀筆測試資料,請輸出在蚯蚯和蚓蚓在最佳策略的情況下,經過
n
回合之後,期望獲 得的分數有多少。由於答案是個有理數,請輸出最簡分數,也就是輸出p/q
使gcd(p, q) = 1,且 q
≥1。
■ 範例輸⼊
4
1 0 0 0 1 -1 -2 -3 1 1 2 3 5 5 5 5
■ 範例輸出
0/1 -2/1 2/1 25/1
本⾴留⽩。
題⽬ H H Game
執⾏時間限制: 12秒
本⽂已滿
18
歲者禁⽌閱讀最近學校流⾏⼀款遊戲,⼤家都稱之為「
H Game
」。「
H Game
」的故事主軸是公主被魔王抓⾛了,所以玩家要負責擊敗魔王,救出公主。但如果你以為這個遊戲的重點是救出公主後的故事,那你就⼤錯特錯了。
其實最重要的事情是打敗魔王,因為與魔王戰⾾的時候,魔王有個絕招,會不斷將玩家傳送到 另⼀個世界。⽽玩家必須停留在那個世界直到解出該世界所有的謎題。由於魔王叫做「
HanHan
」, 玩家們都簡稱為「H
」,這也是為什麼玩家們稱這個遊戲為「H Game
」。然⽽這個遊戲需要不斷動腦,動腦的習慣對於學業也極有幫助,學校的⼤家都將這遊戲當作秘 密武器。可惜這遊戲也不是這麼無害,曾經有成年⼈被各種謎題搞到崩潰,所以⽬前這個遊戲被
⽴法規定限制只有
18
歲以下的⼈才能玩,畢竟這個年齡層的⼈還是⽐較習慣動腦想這些奇怪的問 題。最近⼩花也在玩這個遊戲,繼魔王使出他的絕招後,已經過了好⼀陣⼦了,但他仍停留在這個 世界。
「
ATP
,你要接受這個任務嗎?」⼩花的螢幕上跳出⼀個框框,ATP
是⼩花⾓⾊的名字。為什麼 要⽤這個名字當ID
呢?這⼜是另⼀個故事了。⼩花默默的看著螢幕的「
YES / NO
」視窗,思考著要不要繼續挑戰。畢竟這個世界的問題是這 樣的:⾸先你扮演著⼀個⼤城市的管理顧問,最近領主想要發⾏他⾃⼰的貨幣。城市內的商⼈聽到這 個消息都很驚慌,因為這個時代的領主⼤多都很⽩癡,但⼜恣意妄為。為了想知道⾃⼰商品的價 格是否能⽤新貨幣表⽰,⼤家紛紛找上了你這位城市管理顧問。
新貨幣總共有
N
種,⾯額分別是c
1, c
2, . . . , c
N。城市裡的商品總共有M
種,價格分別是p
1, p
2, p
3, . . . , p
M。⽽這個世界的問題就是個別問你每⼀種商品的價格有沒有辦法⽤新貨幣組成。我們定義「能否組成
x」
,是指「是否存在⼀組整數w
1, w
2, . . . , w
N,使得x =
∑Ni=1
w
ic
i 且∀
w
i ≥0」。
⼩花對於這種數學問題實在算得太慢了。無奈之下,他只好想要找你幫忙。
■ 輸⼊說明
輸⼊的第⼀⾏有⼀個正整數
T
代表測試資料的筆數,接下來的每⼀⾏代表⼀筆測試資料。每⼀筆測試資料的第⼀⾏會有兩個⽤空⽩隔開的整數
N , M
,分別表⽰新貨幣的數量和商品的 數量。第⼆⾏會有N
個⽤空⽩隔開的整數c
1, c
2, . . . , c
N,表⽰新貨幣的⾯額。接下來會有M
⾏,第
i
⾏會有⼀個整數p
i,表⽰第i
個商品的價格。• T
≤100
• 1
≤N
≤50
• 1
≤M
≤10
5• 1
≤c
i ≤10
6• 1
≤p
i ≤10
9■ 輸出說明
對於每⼀筆測試資料,輸出⼀⾏有
M
個字元的字串。第i
個字元表⽰p
i是否能被新貨幣組成。每個字元只會是「Y」或是「N」分別表⽰可⾏或不可⾏。
■ 範例輸⼊
2 3 2 5 3 9 13 7 8 5
9 81 27 72 90 9 9 9000 108
10123 11115 1235 99018
■ 範例輸出
YN YNYNY
■ 範例說明
對於第⼀筆範例輸⼊的
p
1,我們可以找出w
1= 2 , w
2= 1,使 2
×5 + 1
×3 = 13,所以答案是
可⾏的。本⾴留⽩。