Typical90_All_Problems_ZH
競程典型 90 問(Typical 90)全題目繁體中文題本
本題本收錄 AtCoder 經典題集 《競プロ典型 90 問》(Typical 90) 全部 90 道題目之完整繁體中文翻譯、限制條件、輸入輸出格式與範例測資詳解。 原題集由 E869120 企劃出題,涵蓋演算法競賽中最核心的思維模式與技巧(★2 至 ★7 難度)。
題目目錄(Table of Contents)
| Table content rendering (requires nested block fetching) |
001 - 羊羹派對 / Yokan Party(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_a
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一條長度為 cm 的長條狀羊羹。上面標記了 個切割點,從左數來第 個切割點位於距離左端 cm 的位置。
你想要從這 個切割點中選出 個進行切割,將羊羹切成 塊。我們將此時的得分定義如下:
- 塊羊羹中,最短那一塊的長度(以 cm 為單位)
請計算在最佳切割方式下所能獲得的最大得分。
數據範圍
- 所有輸入皆為整數
輸入格式
N L
K
A_1 A_2 … A_N輸出格式
請輸出所求的最大得分。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 34
1
8 13 26輸出:
13說明: 若選擇在從左數來第 個切割點切開,羊羹將被分為長度 cm 與長度 cm 的兩塊,可獲得得分 。
❌ Unsupported block (heading_4)
輸入:
7 45
2
7 11 16 20 28 34 38輸出:
12說明: 若選擇在從左數來第 個與第 個切割點切開,可獲得得分 。
❌ Unsupported block (heading_4)
輸入:
3 100
1
28 54 81輸出:
46說明: 若選擇在從左數來第 個切割點切開,可獲得得分 。
❌ Unsupported block (heading_4)
輸入:
3 100
2
28 54 81輸出:
26❌ Unsupported block (heading_4)
輸入:
20 1000
4
51 69 102 127 233 295 350 388 417 466 469 523 553 587 720 739 801 855 926 954輸出:
170002 - 括號百科全書 / Encyclopedia of Parentheses(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_b
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
請按字典序輸出所有長度為 的合法括號序列。
其中,合法括號序列的定義如下:
()是合法括號序列。- 若 是合法括號序列,則字串
()也是合法括號序列。 - 若 皆為合法括號序列,則字串 也是合法括號序列。
- 除此之外的字串皆不是合法括號序列。
例如:
()()(()())(())()()()()()()()()
是合法括號序列,而
)()))()(((((((a))))
則不是合法括號序列。
另外,在字典序中定義 ( 優先於 )(即 ( 小於 ))。
數據範圍
- 為整數
輸入格式
N輸出格式
請將所有長度為 的合法括號序列依字典序輸出,每行輸出一個。
範例測資
❌ Unsupported block (heading_4)
輸入:
2輸出:
()說明:
長度為 的合法括號序列僅有 ()。
❌ Unsupported block (heading_4)
輸入:
3輸出:
說明: ※ 也可能存在完全沒有輸出的情況。
❌ Unsupported block (heading_4)
輸入:
4輸出:
(())
()()❌ Unsupported block (heading_4)
輸入:
10輸出:
((((()))))
(((()())))
(((())()))
(((()))())
(((())))()
((()(())))
((()()()))
((()())())
((()()))()
((())(()))
((())()())
((())())()
((()))(())
((()))()()
(()((())))
(()(()()))
(()(())())
(()(()))()
(()()(()))
(()()()())
(()()())()
(()())(())
(()())()()
(())((()))
(())(()())
(())(())()
(())()(())
(())()()()
()(((())))
()((()()))
()((())())
()((()))()
()(()(()))
()(()()())
()(()())()
()(())(())
()(())()()
()()((()))
()()(()())
()()(())()
()()()(())
()()()()()003 - 最長環狀道路 / Longest Circular Road(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_c
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 座城市,編號分別為 到 。 另外有 條道路,第 條道路 雙向連接城市 與城市 。 保證任兩座城市之間都可以透過若干條道路互相連通。
現在,你可以自由選擇兩個整數 ,並新建一條雙向連接城市 與城市 的道路。我們將此時的得分定義如下:
- 不重複經過同一條道路的前提下,從某座城市出發並回到同一座城市的路徑中所經過的道路數量(該值是唯一確定的)。
請輸出所有可能獲得的得分中的最大值。
數據範圍
- 任兩座城市之間皆可透過若干條道路互相連通
- 所有輸入皆為整數
輸入格式
N
A_1 B_1
⋮
A_{N-1} B_{N-1}輸出格式
請輸出題目定義的得分之最大可能值。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
1 2
2 3輸出:
3說明: 在城市 與城市 之間新建一條道路。如此一來,沿著「城市 → 城市 → 城市 → 城市 」的路徑所經過的道路數量為 條,可獲得得分 。
❌ Unsupported block (heading_4)
輸入:
5
1 2
2 3
3 4
3 5輸出:
4說明: 在城市 與城市 之間新建一條道路。如此一來,沿著「城市 → 城市 → 城市 → 城市 → 城市 」的路徑所經過的道路數量為 條,可獲得得分 。
❌ Unsupported block (heading_4)
輸入:
10
1 2
1 3
2 4
4 5
4 6
3 7
7 8
8 9
8 10輸出:
8❌ Unsupported block (heading_4)
輸入:
31
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31輸出:
9004 - 十字加總 / Cross Sum(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_d
- 難度等級:★2
- 配分:2 點
- 時間限制:5 sec / 空間限制:1024 MiB
題目描述
有一個 列 行的方格棋盤。由上數來第 列 、由左數來第 行 的方格 上寫有整數 。 對於所有方格 ,請計算以下數值:
- 與方格 位於同一列或同一行的所有方格(包含自身)上所寫整數的總和。
數據範圍
- 所有輸入皆為整數
輸入格式
H W
A_{1, 1} A_{1, 2} … A_{1, W}
A_{2, 1} A_{2, 2} … A_{2, W}
⋮
A_{H, 1} A_{H, 2} … A_{H, W}輸出格式
設與方格 位於同一列或同一行的所有方格(包含自身)上整數的總和為 ,請依以下格式輸出:
B_{1, 1} B_{1, 2} … B_{1, W}
B_{2, 1} B_{2, 2} … B_{2, W}
⋮
B_{H, 1} B_{H, 2} … B_{H, W}範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
1 1 1
1 1 1
1 1 1輸出:
5 5 5
5 5 5
5 5 5❌ Unsupported block (heading_4)
輸入:
4 4
3 1 4 1
5 9 2 6
5 3 5 8
9 7 9 3輸出:
28 28 25 26
39 33 40 34
38 38 36 31
41 41 39 43說明: 與方格 位於同一列或同一行的方格上所寫整數的總和如下:
❌ Unsupported block (heading_4)
輸入:
2 10
31 41 59 26 53 58 97 93 23 84
62 64 33 83 27 95 2 88 41 97輸出:
627 629 598 648 592 660 567 653 606 662
623 633 651 618 645 650 689 685 615 676❌ Unsupported block (heading_4)
輸入:
10 10
83 86 77 65 93 85 86 92 99 71
62 77 90 59 63 76 90 76 72 86
61 68 67 79 82 80 62 73 67 85
79 52 72 58 69 67 93 56 61 92
79 73 71 69 84 87 98 74 65 70
63 76 91 80 56 73 62 70 96 81
55 75 84 77 86 55 96 79 63 57
74 95 82 95 64 67 84 64 93 50
87 58 76 78 88 84 53 51 54 99
82 60 76 68 89 62 76 86 94 89輸出:
1479 1471 1546 1500 1518 1488 1551 1466 1502 1546
1414 1394 1447 1420 1462 1411 1461 1396 1443 1445
1388 1376 1443 1373 1416 1380 1462 1372 1421 1419
1345 1367 1413 1369 1404 1368 1406 1364 1402 1387
1416 1417 1485 1429 1460 1419 1472 1417 1469 1480
1410 1392 1443 1396 1466 1411 1486 1399 1416 1447
1397 1372 1429 1378 1415 1408 1431 1369 1428 1450
1419 1393 1472 1401 1478 1437 1484 1425 1439 1498
1366 1390 1438 1378 1414 1380 1475 1398 1438 1409
1425 1442 1492 1442 1467 1456 1506 1417 1452 1473005 - 受限的數字 / Restricted Digits(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_e
- 難度等級:★7
- 配分:7 點
- 時間限制:5 sec / 空間限制:1024 MiB
題目描述
僅使用數字 所能構成的 位正整數中,有多少個是 的倍數?請計算其數量除以 的餘數。
數據範圍
- 所有輸入皆為整數
輸入格式
N B K
c_1 c_2 … c_K輸出格式
請輸出答案除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 7 3
1 4 9輸出:
3說明: 由 所構成的 位數中, 的倍數有 共 個。
❌ Unsupported block (heading_4)
輸入:
5 2 3
1 4 9輸出:
81❌ Unsupported block (heading_4)
輸入:
10000 27 7
1 3 4 6 7 8 9輸出:
989112238❌ Unsupported block (heading_4)
輸入:
1000000000000000000 29 6
1 2 4 5 7 9輸出:
853993813說明: ※ 此範例測資僅滿足子任務 的約束條件。
❌ Unsupported block (heading_4)
輸入:
1000000000000000000 957 7
1 2 3 5 6 7 9輸出:
205384995說明: ※ 此範例測資僅滿足子任務 的約束條件。
006 - 最小子序列 / Smallest Subsequence(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_f
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 且僅由小寫英文字母組成的字串 。
請在 的所有長度為 的子序列中,找出字典序最小的字串並輸出。
數據範圍
- 是長度為 且僅由小寫英文字母組成的字串
- 為整數
輸入格式
N K
S輸出格式
請輸出符合條件的字典序最小字串。
範例測資
❌ Unsupported block (heading_4)
輸入:
7 3
atcoder輸出:
acd說明:
取第 個字元可得到字串 acd。
該字串是所有長度為 的子序列中字典序最小的。
❌ Unsupported block (heading_4)
輸入:
14 5
kittyonyourlap輸出:
inlap007 - 程式競賽分班 / CP Classes(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_g
- 難度等級:★3
- 配分:3 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
ABC 程式競賽補習班開設了 個班級,編號為 的班級適合目標 Rating 為 的學生。
現在有 位學生準備進入該補習班。 編號為 的學生的 Rating 為 。 每位學生如果進入不適合自己程度的班級都會感到不滿。 對每位學生而言,其不滿度定義如下:
- 班級目標 Rating 與自身 Rating 差值的絕對值,即
對於每個 ,請分別計算編號為 的學生在選擇班級時可能產生的最小不滿度。 注意:允許某些班級沒有任何學生加入,也允許一個班級有多名學生加入。
數據範圍
- 所有輸入皆為整數
輸入格式
N
A_1 A_2 A_3 … A_N
Q
B_1
B_2
B_3
⋮
B_Q輸出格式
對於每個 ,請依序在標準輸出一行輸出答案,總共輸出 行。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
4000 4400 5000 3200
3
3312
2992
4229輸出:
112
208
171❌ Unsupported block (heading_4)
輸入:
1
4000
10
3582
3538
3320
3312
3296
3257
3111
3040
3013
2994輸出:
418
462
680
688
704
743
889
960
987
1006❌ Unsupported block (heading_4)
輸入:
10
869120000 998244353 777777777 123456789 100100100 464646464 987654321 252525252 869120001 1000000000
10
4229
20210406
1
268435456
3582
536870912
1000000000
869120
99999999
869120001輸出:
100095871
79889694
100100099
15910204
100096518
72224448
0
99230980
100101
0❌ Unsupported block (heading_4)
輸入:
100
298750376 229032640 602876667 944779015 909539868 533609371 231368330 445484152 408704870 850216874 349286798 30417810 807260002 554049450 40706045 380488344 749325840 801881841 459457853 66691229 5235900 8100458 46697277 997429858 827651689 790051948 981897272 271364774 536232393 997361572 449659237 602191750 294800444 346669663 792837293 277667068 997282249 468293808 444906878 702693341 894286137 845317003 27053625 926547765 739689211 447395911 902031510 326127348 582956343 842918193 235655766 844300842 438389323 406413067 862896425 464876303 68833418 76340212 911399808 745744264 551223563 854507876 196296968 52144186 431165823 275217640 424495332 847375861 337078801 83054466 648322745 694789156 301518763 319851750 432518459 772897937 630628124 581390864 313132255 350770227 642944345 677742851 448945480 688009163 160941957 290297295 5532462 823543277 19634445 15791361 193309093 66202596 72364149 743270896 297240520 264035189 898589962 59916738 307942952 403411309
30
930579110
22697034
44652533
280533771
753567118
684927419
923477579
557613803
779616458
389130756
323671659
3117850
408004003
224808850
18421958
359047808
364572866
334631363
854759331
647435074
826055423
668443532
620408208
32237184
67299071
251185742
217292659
16181227
850865411
218577687輸出:
4031345
3062589
2044744
2866703
4241278
3081744
3070186
3564353
6718521
8642412
2455689
2118050
700867
4223790
1212487
8277581
13802639
2447438
251455
887671
1596266
9299319
10219916
1819374
607842
12849447
11739981
389866
648537
10454953008 - AtCoder 計數 / AtCounter(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_h
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 且僅由小寫英文字母組成的字串 。令 的第 個字元為 。
從 中取出 個以上字元的方法共有 種,其中滿足以下條件的選取方式共有多少種?由於答案可能非常大,請輸出答案除以 的餘數。
- 將取出的字元按照原本的先後順序連接後,構成的字串為
"atcoder"。
注意:若存在至少一個字元 在兩種選取方式中僅其中一種被取出,則這兩種「取出字元的方法」被視為不同。
數據範圍
- 字串 僅由小寫英文字母組成
輸入格式
N
S輸出格式
請輸出答案除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
10
attcordeer輸出:
4說明:
能夠構成子序列 "atcoder" 的例子之一是選取 的第 個字元。除此之外還有另外 種滿足條件的子序列選取方式,因此答案共有 種。
❌ Unsupported block (heading_4)
輸入:
41
btwogablwetwoiehocghiewobadegwhoihegnldir輸出:
2❌ Unsupported block (heading_4)
輸入:
140
aaaaaaaaaaaaaaaaaaaattttttttttttttttttttccccccccccccccccccccooooooooooooooooooooddddddddddddddddddddeeeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrr輸出:
279999993說明: 請輸出答案除以 的餘數。
009 - 三點夾角 / Three Point Angle(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_i
- 難度等級:★6
- 配分:6 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
座標平面上有相異的 個點 ,其中點 的座標為 。
從這 個點中選出相異的 3 個點 ,我們希望最大化 。請以度數法(度)為單位輸出此最大值。
這裡規定 。
關於 : 指由折線「點 點 點 」所構成的角度大小(即以 為頂點的夾角)。
數據範圍
- 所有輸入數值皆為整數
輸入格式
N
X_1 Y_1
X_2 Y_2
⋮
X_N Y_N輸出格式
請以度數法輸出 的最大值。 若輸出的相對誤差或絕對誤差在 以下,則視為正確答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
0 0
0 10
10 10輸出:
90說明: 的座標分別為 。
其中最大值為 ,因此輸出 90 即可。
❌ Unsupported block (heading_4)
輸入:
5
8 6
9 1
2 0
1 0
0 1輸出:
171.869897645844說明: 為最大值。
❌ Unsupported block (heading_4)
輸入:
10
0 0
1 7
2 6
2 8
3 5
5 5
6 7
7 1
7 9
8 8輸出:
180說明: 為最大值。
❌ Unsupported block (heading_4)
輸入:
40
298750376 229032640
602876667 944779015
909539868 533609371
231368330 445484152
408704870 850216874
349286798 30417810
807260002 554049450
40706045 380488344
749325840 801881841
459457853 66691229
5235900 8100458
46697277 997429858
827651689 790051948
981897272 271364774
536232393 997361572
449659237 602191750
294800444 346669663
792837293 277667068
997282249 468293808
444906878 702693341
894286137 845317003
27053625 926547765
739689211 447395911
902031510 326127348
582956343 842918193
235655766 844300842
438389323 406413067
862896425 464876303
68833418 76340212
911399808 745744264
551223563 854507876
196296968 52144186
431165823 275217640
424495332 847375861
337078801 83054466
648322745 694789156
301518763 319851750
432518459 772897937
630628124 581390864
313132255 350770227輸出:
179.9834340684232010 - 區間得分總和查詢 / Score Sum Queries(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_j
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
ABC 大學有 名一年級學生。一年級共有 個班級,學號為 的學生屬於第 班。今天是期末考成績公布的日子,學號為 的學生期末考成績為 分。
現在給定 個以下格式的詢問,請分別對每個 進行回答:
- 學號在 之間的第 班學生期末考成績總和。
- 學號在 之間的第 班學生期末考成績總和。
- 分別求出這兩個數值。
數據範圍
- 所有輸入皆為整數
輸入格式
N
C_1 P_1
C_2 P_2
⋮
C_N P_N
Q
L_1 R_1
L_2 R_2
⋮
L_Q R_Q輸出格式
設學號在 之間的第 班學生期末考成績總和為 、第 班學生期末考成績總和為 ,請依以下格式輸出:
A_1 B_1
A_2 B_2
⋮
A_Q B_Q範例測資
❌ Unsupported block (heading_4)
輸入:
7
1 72
2 78
2 94
1 23
2 89
1 40
1 75
1
2 6輸出:
63 261說明: 學號在 之間的第 班學生,期末考成績總和為 分。 學號在 之間的第 班學生,期末考成績總和為 分。
❌ Unsupported block (heading_4)
輸入:
7
1 72
2 78
2 94
1 23
2 89
1 40
1 75
10
1 3
2 4
3 5
4 6
5 7
1 5
2 6
3 7
1 6
2 7輸出:
72 172
23 172
23 183
63 89
115 89
95 261
63 261
138 183
135 261
138 261❌ Unsupported block (heading_4)
輸入:
1
1 100
3
1 1
1 1
1 1輸出:
100 0
100 0
100 0說明: ※ 也可能存在某一個班級完全沒有學生的情況。
❌ Unsupported block (heading_4)
輸入:
20
2 90
1 67
2 9
2 17
2 85
2 43
2 11
1 32
2 16
1 19
2 65
1 14
1 51
2 94
1 4
1 55
2 90
1 89
1 35
2 81
20
3 17
5 5
11 11
8 10
3 13
2 6
3 7
3 5
12 18
4 8
3 16
6 8
3 20
1 12
1 6
5 16
3 10
17 19
4 4
7 15輸出:
175 430
0 85
0 65
51 16
116 246
67 154
0 165
0 111
213 184
32 156
175 340
32 54
299 511
132 336
67 244
175 314
51 181
124 90
0 17
120 186011 - 肥缺工作 / Gravy Jobs(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_k
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
ABC 君收到了 件工作委託。每件工作依序編號為 。
工作 的截止期限為第 天結束時,且需要花費連續 天才能完成。無法透過其他方式完成該工作。
更精確地說,要在截止期限前完成工作 ,對於某個滿足 的整數 ,必須從第 天開始到第 天結束為止,連續進行第 件工作。
在截止期限前完成工作 可獲得 元的報酬。每天最多只能進行 種工作。
現在是第 天的開始。若 ABC 君妥善選擇要承接的工作並安排排程,請求出他所能獲得的報酬金額的最大可能值。
數據範圍
- 所有輸入皆為整數
輸入格式
N
D_1 C_1 S_1
D_2 C_2 S_2
⋮
D_N C_N S_N輸出格式
請在一行中輸出 ABC 君能獲得的報酬金額的最大可能值。
範例測資
❌ Unsupported block (heading_4)
輸入:
1
12 3 69853輸出:
69853說明: 從第 天到第 天花費 天完成第 件工作,可以獲得 元。
由於無法獲得超過 元的報酬,因此答案為 元。
❌ Unsupported block (heading_4)
輸入:
3
7 3 200000
3 2 100000
5 3 150000輸出:
350000說明: 從第 天到第 天花費 天完成第 件工作,從第 天到第 天花費 天完成第 件工作,可以獲得 元。
由於無法獲得超過 元的報酬,因此答案為 元。
❌ Unsupported block (heading_4)
輸入:
8
376 640 602876667
4015 1868 533609371
3330 152 408704870
1874 798 30417810
2 1450 40706045
3344 1840 801881841
2853 1229 5235900
458 1277 997429858輸出:
1744196082❌ Unsupported block (heading_4)
輸入:
20
376 640 602876667
4015 868 533609371
3330 152 408704870
1874 798 30417810
2 450 40706045
3344 840 801881841
2853 229 5235900
458 277 997429858
1689 948 981897272
4774 393 997361572
4237 750 294800444
4663 293 277667068
2249 808 444906878
3341 137 845317003
3625 765 739689211
911 510 326127348
1343 193 235655766
842 323 406413067
1425 303 68833418
212 808 745744264輸出:
6583558066說明: 此範例輸入不符合子任務 的限制,但符合子任務 的限制。
❌ Unsupported block (heading_4)
輸入:
30
376 140 602876667
4015 368 533609371
3330 152 408704870
1874 298 30417810
2 450 40706045
3344 340 801881841
2853 229 5235900
458 277 997429858
1689 448 981897272
4774 393 997361572
4237 250 294800444
4663 293 277667068
2249 308 444906878
3341 137 845317003
3625 265 739689211
911 10 326127348
1343 193 235655766
842 323 406413067
1425 303 68833418
212 308 745744264
3563 376 196296968
4186 323 275217640
332 361 337078801
4466 245 694789156
3763 250 432518459
2937 124 581390864
2255 227 642944345
2851 480 688009163
1957 295 5532462
3277 445 15791361輸出:
11420667389說明: 此範例輸入不符合子任務 的限制,但符合子任務 的限制。
012 - 塗成紅色 / Red Painting(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_l
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個 行 列的網格,從上數來第 行 、從左數來第 列 的方格表示為 。
一開始所有方格都是白色的。接著會依序給出 個以下形式的查詢。
對於第 個 查詢:
- 當 時: 給定整數 。 白色方格 被塗成紅色。
- 當 時:
給定整數 。
若同時滿足以下兩個條件則輸出
Yes,否則輸出No:
請依序處理這 個查詢。
數據範圍
- 當 時,、
- 當 時,、
- 當 且 時,
- 所有輸入皆為整數
輸入格式
H W
Q
q_1
⋮
q_Q其中 代表第 個查詢的資訊,符合以下兩種格式之一:
1 r_i c_i2 {ra}_i {ca}_i {rb}_i {cb}_i輸出格式
對於給定的 個查詢中所有 的查詢,依序將處理結果以換行分隔,一行輸出一個結果。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
10
1 2 2
1 1 1
2 1 1 2 2
1 3 2
2 1 1 2 2
2 2 2 3 2
1 2 3
1 2 1
2 1 1 2 2
2 1 1 3 3輸出:
No
No
Yes
Yes
No說明: 依序處理給定的 個查詢如下:
- 方格 被塗成紅色。
- 方格 被塗成紅色。
- 從方格 無法透過在紅色方格上朝上下左右移動到達方格 ,因此輸出
No。 - 方格 被塗成紅色。
- 從方格 無法透過在紅色方格上朝上下左右移動到達方格 ,因此輸出
No。 - 方格 與方格 皆被塗成紅色,且在上下方向相鄰,因此輸出
Yes。 - 方格 被塗成紅色。
- 方格 被塗成紅色。
- 從方格 可以透過依序經過方格 方格 方格 在紅色方格上朝上下左右移動到達,因此輸出
Yes。 - 從方格 無法透過在紅色方格上朝上下左右移動到達方格 ,因此輸出
No。
❌ Unsupported block (heading_4)
輸入:
1 1
3
2 1 1 1 1
1 1 1
2 1 1 1 1輸出:
No
Yes說明: 請注意沒有任何方格被塗成紅色的情況。
❌ Unsupported block (heading_4)
輸入:
5 5
42
2 3 4 3 4
2 3 2 3 2
1 4 1
2 4 1 2 2
1 1 2
1 4 5
1 3 3
2 4 2 1 3
1 3 5
2 2 4 2 3
2 2 4 2 5
2 3 4 5 1
2 3 1 2 2
2 3 1 1 2
2 2 4 5 2
2 3 2 5 3
1 4 3
2 3 3 3 5
2 3 1 3 2
1 1 5
2 4 4 5 3
1 1 4
2 1 3 2 5
2 4 3 1 4
2 2 3 3 3
1 2 1
1 2 5
2 1 4 5 3
2 4 4 2 5
2 4 2 2 4
1 2 2
2 4 1 5 2
1 2 4
2 3 1 4 1
1 4 4
2 3 2 2 1
2 1 1 5 2
1 4 2
2 4 2 3 5
1 3 2
1 3 4
1 2 3輸出:
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes013 - 途經 / Passing(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_m
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
AGC 王國有 座城鎮,編號分別為 。此外,有 條連接城鎮的道路。第 條道路雙向連接城鎮 與 ,通過該道路需要花費 分鐘。
對於每個 ,求從城鎮 出發,途經城鎮 移動到城鎮 所需時間的最小值。
數據範圍
- 任意兩座城鎮之間都可以透過若干條道路互相到達
- 所有輸入皆為整數
輸入格式
N M
A_1 B_1 C_1
⋮
A_M B_M C_M輸出格式
請輸出 行。 第 行 輸出從城鎮 出發,途經城鎮 移動到城鎮 所需時間的最小值(以分鐘為單位)。
範例測資
❌ Unsupported block (heading_4)
輸入:
7 9
1 2 2
1 3 3
2 5 2
3 4 1
3 5 4
4 7 5
5 6 1
5 7 6
6 7 3輸出:
8
8
9
9
8
8
8說明: 例如當 時,選擇以下路徑是最優的。此時花費的時間為 分鐘,因此第 行輸出 。
❌ Unsupported block (heading_4)
輸入:
4 3
1 2 1
2 3 10
3 4 100輸出:
111
111
111
111❌ Unsupported block (heading_4)
輸入:
4 3
1 2 314
1 3 159
1 4 265輸出:
265
893
583
265014 - 我們曾一起唱歌 / We Used to Sing a Song Together(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_n
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
AGC 街道上住著 位小學生,小學生 的家位於位置 。 此外,街道上建有 所小學,小學 位於位置 。 住在 AGC 街道上的小學生彼此性格不合、關係緊張,因此希望能讓每個人都就讀不同的小學。
此外,「不便程度」定義如下: - 若將小學生 從家到學校的距離記為 ,則不便程度為所有距離的總和,即 。 - 其中,從位置 到位置 的距離為 。
在每位學生就讀不同學校的條件下,求不便程度的最小可能值。
數據範圍
- 互不相同
- 互不相同
- 所有輸入皆為整數
輸入格式
N
A_1 A_2 … A_N
B_1 B_2 … B_N輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
1
869
120輸出:
749說明: 小學生 的家與小學 的距離為 。 在此輸入中,小學生 必定就讀小學 ,因此該值是不便程度唯一可能的值,也是最小值。
❌ Unsupported block (heading_4)
輸入:
6
8 6 9 1 2 0
1 5 7 2 3 9輸出:
5說明: 若讓小學生 分別就讀小學 ,不便程度為 。 無法使不便程度小於此值,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
10
31 41 59 26 53 58 97 93 23 84
17 32 5 8 7 56 88 77 29 35輸出:
211❌ Unsupported block (heading_4)
輸入:
20
804289382 846930886 681692776 714636914 957747792 424238335 719885386 649760491 596516649 189641420 25202361 350490026 783368690 102520058 44897761 967513925 365180539 540383425 304089172 303455735
35005211 521595368 294702567 726956428 336465782 861021530 278722862 233665123 145174065 468703135 101513928 801979801 315634021 635723058 369133068 125898166 59961392 89018454 628175011 656478041輸出:
2736647674015 - 保持距離 / Don’t be too close(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_o
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 顆球,上面分別寫著 到 的整數。 對於每個 ,請回答以下問題:
- 從這 顆球中選出 顆以上的球,共有 種選法。其中滿足以下條件的選法有多少種?
- 由於答案可能非常大,請輸出對 取模的結果。
數據範圍
- 為整數
輸入格式
N輸出格式
輸出共有 行。
第 行 請輸出當 時的答案對 取模的結果。
範例測資
❌ Unsupported block (heading_4)
輸入:
1輸出:
1說明: 只有選擇球 這一種方法。
❌ Unsupported block (heading_4)
輸入:
2輸出:
3
2說明: 當 時,所選球的集合有 、、 共 種。
當 時,有 、 共 種。
❌ Unsupported block (heading_4)
輸入:
3輸出:
7
4
3❌ Unsupported block (heading_4)
輸入:
4輸出:
15
7
5
4❌ Unsupported block (heading_4)
輸入:
7輸出:
127
33
18
13
10
8
7❌ Unsupported block (heading_4)
輸入:
20輸出:
1048575
17710
2744
906
430
250
167
118
90
75
65
56
48
41
35
30
26
23
21
20❌ Unsupported block (heading_4)
輸入:
50輸出:
898961330
951279874
262271567
14341526
1985602
466851
153365
63191
30623
16687
9987
6453
4354
3070
2290
1790
1427
1138
910
735
605
512
448
405
375
350
326
303
281
260
240
221
203
186
170
155
141
128
116
105
95
86
78
71
65
60
56
53
51
50說明: 請輸出對 取模的結果。
016 - 最少硬幣 / Minimum Coins(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_p
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
使用 元硬幣、 元硬幣、 元硬幣各 枚以上恰好支付 元時,求所使用硬幣枚數的最小可能值。
保證每種硬幣皆有無限多枚可供使用。
數據範圍
- 互不相同
- 能以合計最多 枚硬幣恰好支付 元
- 所有輸入皆為整數
輸入格式
N
A B C輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
227
21 47 56輸出:
5說明: 使用 枚 元硬幣、 枚 元硬幣、 枚 元硬幣來支付是最優的。 合計為 枚。
❌ Unsupported block (heading_4)
輸入:
9999
1 5 10輸出:
1004說明: 使用 枚 元硬幣、 枚 元硬幣、 枚 元硬幣來支付是最優的。 合計為 枚。
❌ Unsupported block (heading_4)
輸入:
998244353
314159 265358 97932輸出:
3333❌ Unsupported block (heading_4)
輸入:
100000000
10001 10002 10003輸出:
9998017 - 相交線段 / Crossing Segments(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_q
- 難度等級:★7
- 配分:7 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
圓周上有 個點,順時針依序編號為 。 另外有 條線段,線段 連接點 與點 。
求滿足線段 與線段 在端點以外的位置相交的數對 的數量。
數據範圍
輸入格式
N M
L_1 R_1
L_2 R_2
⋮
L_M R_M輸出格式
請輸出滿足線段 在端點以外的位置相交的數對 的數量。
範例測資
❌ Unsupported block (heading_4)
輸入:
6 3
2 5
1 4
1 3輸出:
2❌ Unsupported block (heading_4)
輸入:
250 10
13 218
17 99
24 180
53 115
96 97
111 158
124 164
135 227
158 177
204 224輸出:
10❌ Unsupported block (heading_4)
輸入:
100 10
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11輸出:
0❌ Unsupported block (heading_4)
輸入:
100 10
1 100
2 99
3 98
4 97
5 96
6 95
7 94
8 93
9 92
10 91輸出:
0❌ Unsupported block (heading_4)
輸入:
1000 40
12 43
23 59
32 118
44 751
68 136
70 168
85 328
88 809
92 981
95 540
98 772
98 903
125 896
173 737
199 325
212 369
227 587
230 374
287 442
306 926
314 858
316 371
318 493
337 506
384 887
387 493
394 457
404 652
414 527
422 920
441 730
445 620
468 602
482 676
568 857
587 966
653 757
710 928
764 927
778 916輸出:
229018 - 直大雕像 / Statue of Chokudai(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_r
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
在平面 上,有一座高度為 、每 分鐘旋轉一圈的摩天輪。 摩天輪呈圓形,並以恆定速度依以下方式運轉。 其中, 平面為水平方向, 軸為垂直方向。
- 搭乘 分鐘後,位於座標
- 搭乘 分鐘後,位於座標
- 搭乘 分鐘後,位於座標
- 搭乘 分鐘後,位於座標
摩天輪的著名地標「高橋直大像」位於座標 。 給定 個以下形式的詢問,請依序回答:
- 在第 個詢問中,求 E869120 君搭乘摩天輪 分鐘後,從 E869120 君的角度看高橋直大像的俯角。
數據範圍
- 所有輸入皆以整數給出
輸入格式
T
L X Y
Q
E_1
E_2
⋮
E_Q輸出格式
請依序輸出各時刻看高橋直大像的俯角,共 行。 角度請以度數法(度)輸出,範圍為 到 度。
當絕對誤差或相對誤差在 以下時,將被視為正確。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
2 1 1
4
0
1
2
3輸出:
0.000000000000
24.094842552111
54.735610317245
45.000000000000說明: 高橋直大像位於座標 。
在時刻 ,E869120 君位於座標 ,從 E869120 君看高橋直大像的俯角為 度。
在時刻 ,E869120 君位於座標 ,從 E869120 君看高橋直大像的俯角為 度。
❌ Unsupported block (heading_4)
輸入:
5121
312000000 4123 3314
6
123
12
445
4114
42
1233輸出:
4.322765775902
0.421184234768
15.640867693969
35.396039162484
1.475665637902
43.338582976959019 - 取出兩個 / Pick Two(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_s
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 的正整數數列 。 考慮透過以下操作從數列 中移除數字:
- 設當前剩餘的數列為 。選擇一個滿足 的整數 ,並從數列中移除 與 。在此操作後,剩餘的數列變為 。
進行此操作需要消耗成本。 若移除的數字為 ,則單次操作所需的成本為 。
重複進行此操作 次以將數列 中的所有數字全部移除,求這 次操作的成本總和的最小可能值。
數據範圍
- 所有輸入皆為整數
輸入格式
N
A_1 A_2 … A_{2N}輸出格式
請輸出進行 次操作所需成本總和的最小可能值。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
6 2 3 9 8 6輸出:
2說明: 成本總和最小的操作範例如下:
- 選擇 ,花費 的成本進行操作。數列變為 。
- 選擇 ,花費 的成本進行操作。數列變為 。
- 選擇 ,花費 的成本進行操作。數列變為 。
這 次操作的成本總和為 。
❌ Unsupported block (heading_4)
輸入:
3
1 3 5 5 3 1輸出:
0❌ Unsupported block (heading_4)
輸入:
4
1 2 4 8 16 32 64 128輸出:
85❌ Unsupported block (heading_4)
輸入:
15
73 8 55 26 97 48 37 47 35 55 5 17 62 2 60 23 99 73 34 75 7 46 82 84 29 41 32 31 52 32輸出:
207020 - 對數不等式 / Log Inequality(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_t
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
是否滿足 ?
數據範圍
- 所有輸入皆為整數
輸入格式
a b c輸出格式
若 則輸出 Yes,否則輸出 No。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 3 2輸出:
Yes說明: 因為 且 ,所以 。
❌ Unsupported block (heading_4)
輸入:
16 3 2輸出:
No說明: 因為 且 ,所以不滿足 。
❌ Unsupported block (heading_4)
輸入:
8 3 2輸出:
No說明:
因為 且 ,所以 。
請注意兩邊的值相等時也要輸出 No。
021 - 平安歸來 / Come Back in One Piece(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_u
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個 個頂點、 條邊的有向圖。邊被編號為 ,第 條邊從頂點 連向頂點 。
請問滿足以下條件的頂點對 ()共有多少組?
- 頂點 到頂點 的路徑,以及頂點 到頂點 的路徑,兩者皆存在。
數據範圍
- 所有輸入皆為整數
輸入格式
N M
A_1 B_1
A_2 B_2
dots
A_M B_M輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 7
1 2
2 1
2 3
4 3
4 1
1 4
2 3輸出:
3說明: 例如, 中,從頂點 到頂點 存在由邊 組成的路徑,從頂點 到頂點 存在由邊 組成的路徑,因此滿足條件。 除此之外, 也滿足條件;但 由於不存在從頂點 到頂點 的路徑,因此不滿足條件。
另外請注意,如邊 與邊 所示,圖中可能包含重邊(多重邊)。
❌ Unsupported block (heading_4)
輸入:
100 1
1 2輸出:
0022 - 立方體蛋糕 / Cubic Cake(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_v
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個寬為 、深為 、高為 的長方體形狀蛋糕。
你可以對蛋糕進行以下操作:
- 沿著與某個面平行的方向進行切斷
- 但是,不能移動蛋糕(當蛋糕被分割成多個部分時,不能將它們移動或分開單獨切割)
最少需要幾次操作,才能使所有蛋糕塊都變成正方體(立方體)?
數據範圍
- 所有輸入皆為整數
輸入格式
A B C輸出格式
請在一行中輸出最少的操作次數。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 2 3輸出:
4說明: 切斷蛋糕 次後,可以得到 個邊長為 的立方體。
❌ Unsupported block (heading_4)
輸入:
2 2 4輸出:
1說明: 切斷蛋糕 次後,可以得到 個邊長為 的立方體。
❌ Unsupported block (heading_4)
輸入:
1000000000000000000 999999999999999999 999999999999999998輸出:
2999999999999999994說明: 請注意整數溢位。
023 - 避免衝突 / Avoid War(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_w
- 難度等級:★7
- 配分:7 點
- 時間限制:8 sec / 空間限制:2048 MiB
題目描述
有一個高 格、寬 格的網格,從上數來第 列、從左數來第 行的格子記為 。
每個格子都有塗色,格子 的顏色在 為 # 時為黑色,在 為 . 時為白色。
你可以選擇若干個白色格子(也可以一個都不選),在上面放置國王(King)棋子。 請問有多少種放置方法,使得國王之間互不互相攻擊(定義如下)?請輸出方法數除以 的餘數。
在此,兩種放置方法被視為不同,若且唯若: 「存在某個白色格子,在其中一種方法中放置了國王,而在另一種方法中沒有放置」。
「國王之間互不互相攻擊」是指: 對於任意兩個放置了國王的不同格子 與 ,均滿足 或 。
數據範圍
- 為整數
- 為
#或. - 至少存在一個白色格子
輸入格式
H W
C_{1,1}… C_{1,W}
dots
C_{H,1}… C_{H,W}輸出格式
請輸出滿足條件的放置方法數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
1 3
...輸出:
5說明:
共有以下 種方式。(o 表示放置了國王的格子)
... o.. .o. ..o o.o這滿足子任務 的限制。
❌ Unsupported block (heading_4)
輸入:
3 3
.#.
#..
.##輸出:
13說明:
共有以下 種方式。(o 表示放置了國王的格子)
.#. o#. .#o .#. .#. .#. o#o
#.. #.. #.. #o. #.o #.. #..
.## .## .## .## .## o## .##
o#. o#. .#o .#. o#o o#.
#.o #.. #.. #.o #.. #.o
.## o## o## o## o## o##這滿足子任務 的限制。
❌ Unsupported block (heading_4)
輸入:
8 9
######.##
####..##.
..#...#..
###...###
#....##.#
.##......
#.####..#
#.#######輸出:
273768說明: 這滿足子任務 的限制。
❌ Unsupported block (heading_4)
輸入:
17 17
.####...#.....#.#
.#....#.#####...#
#...##.##...#..##
..#..####..#...##
.#..#..#.#.##...#
.#.#.#...#.##..#.
#...#..#..##..###
###.#..###..###..
...#.##.##.#....#
..####....#.#...#
.##...##.#.#...#.
..########...###.
#..##....#.......
##.##..###.#.##..
.##....#........#
....#####..##.#..
.###...##..##.#..輸出:
314465173說明: 請輸出除以 的餘數。
這滿足子任務 的限制。
❌ Unsupported block (heading_4)
輸入:
22 18
.##.##.#.#.#...##.
####.#..###.#.#..#
#####.##...##.###.
...#.#.#.##.##.###
..#.##.#.#....#...
#.###.##....###..#
....#####...#...#.
.#..##..#..###....
....#..##.#.#..#.#
###.#.....#..##.#.
#..#..#.#.##..###.
#...#....##..###..
..#...#..###..##..
.#....#.#.#..###.#
##.#.#..#..###..##
....###.##.##.##..
#...####.#.#..##..
..#.###.###.###.##
#...##.#.#.#...#.#
#..###..########..
#.##.#####.#..#.##
#..#........#...#.輸出:
47296634說明: 這滿足子任務 的限制。
024 - 加減一的選擇 / Select +/- One(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_x
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定長度為 的正整數數列 及 。
請判斷是否能透過進行恰好 次以下操作,使 與 完全一致。
操作:選擇一個滿足 的 ,將 替換為 或 。
數據範圍
- 所有輸入皆為整數
輸入格式
N K
A_1 A_2 … A_N
B_1 B_2 … B_N輸出格式
如果能透過恰好 次操作使 與 一致,請輸出 Yes;否則輸出 No。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 5
1 3
2 1輸出:
Yes說明: 例如,可以透過以下恰好 次操作使 與 一致:
- 選擇 ,將 替換為 。此時 變為 。
- 選擇 ,將 替換為 。此時 變為 。
- 選擇 ,將 替換為 。此時 變為 。
- 選擇 ,將 替換為 。此時 變為 。
- 選擇 ,將 替換為 。此時 變為 ,與 一致。
❌ Unsupported block (heading_4)
輸入:
3 1
7 8 9
7 8 9輸出:
No說明: 進行恰好 次操作後, 會變成以下其中之一:
這些都與 不一致,因此請輸出 No。
❌ Unsupported block (heading_4)
輸入:
7 999999999
3 1 4 1 5 9 2
1 2 3 4 5 6 7輸出:
Yes025 - 數位乘積方程式 / Digit Product Equation(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_y
- 難度等級:★7
- 配分:7 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
函數 定義如下:
例如 、、。
給定整數 與 ,求在 以上 以下的整數 中,滿足 的整數個數。
數據範圍
- 所有輸入皆為整數
輸入格式
N B輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
999 434輸出:
2說明: 與 這 個數滿足條件。
❌ Unsupported block (heading_4)
輸入:
255 15輸出:
2❌ Unsupported block (heading_4)
輸入:
9999999999 1輸出:
0026 - 樹上的獨立集 / Independent Set on a Tree(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_z
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一棵 個頂點的樹。頂點編號為 到 ,第 條邊 連接頂點 與 。
請從這棵樹中選出 $rac{N}{2}$ 個不重複的頂點,使得選出的任意兩個頂點均不相鄰。
數據範圍
- 為偶數
- 所有輸入皆為整數
- 給定的數據是一棵樹
輸入格式
N
A_1 B_1
A_2 B_2
dots
A_{N-1} B_{N-1}輸出格式
請在一行中以空格分隔,輸出 $rac{N}{2}$ 個不重複的頂點編號。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
1 2
2 3
2 4輸出:
3 4❌ Unsupported block (heading_4)
輸入:
6
1 3
2 4
3 5
2 5
3 6輸出:
1 2 6027 - 註冊申請 / Sign Up Requests (★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_aa
- 難度等級:★2
- 配分:2 點
- 時間限制:1 sec / 空間限制:1024 MiB
題目描述
低橋君建立了一個程式競賽網站「LowCoder」並開始營運服務。 截至今天為止,LowCoder 上沒有任何使用者。
從今天起算第 天(),會有一位希望使用使用者名稱 的使用者提出註冊申請。
在提出申請的當下,如果已經存在使用者名稱為 的使用者,則該註冊申請將被忽略。 如果不存在這樣的使用者,則該註冊申請會被受理,該使用者將被成功註冊到 LowCoder 中。
請計算出哪些天數(第幾天)送出的註冊申請會被受理。
數據範圍
- ()為由英文字母小寫及數字組成的長度介於 到 之間的字串。
更精確地說, 是可用正規表達式
[a-z0-9]{1,15}表示的字串。
輸入格式
N
S_1
S_2
dots
S_N輸出格式
請將從今天起算第幾天送出的註冊申請會被受理,依升冪(由小到大)順序輸出。
範例測資
❌ Unsupported block (heading_4)
輸入:
5
e869120
atcoder
e869120
square1001
square1001輸出:
1
2
4說明:
第 天申請了使用者名稱 e869120,由於此時沒有該名稱的使用者,因此成功註冊至 LowCoder。
第 天申請了使用者名稱 atcoder,由於此時沒有該名稱的使用者,因此成功註冊至 LowCoder。
第 天申請了使用者名稱 e869120,但由於該使用者名稱已經被註冊過,因此不予受理。
第 天申請了使用者名稱 square1001,由於此時沒有該名稱的使用者,因此成功註冊至 LowCoder。
第 天申請了使用者名稱 square1001,但由於該使用者名稱已經被註冊過,因此不予受理。
❌ Unsupported block (heading_4)
輸入:
4
taro
hanako
yuka
takashi輸出:
1
2
3
4說明: 也可能存在沒有任何註冊申請被拒絕的情況(所有申請均被受理)。
❌ Unsupported block (heading_4)
輸入:
10
square869120
square869120
square869120
square869120
square869120
square869120
square869120
square869120
square869120
square869120輸出:
1說明: 有可能全部相同。
028 - 雜亂的紙張 / Cluttered Paper(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ab
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
二維平面上有 張長方形的紙。所有紙張的邊都與 軸或 軸平行放置,第 張紙的左下角座標為 ,右上角座標為 。 對於 ,請分別求出以下數值:
- 恰好被 張紙重疊覆蓋的區域面積
數據範圍
- 所有輸入皆為整數
輸入格式
N
lx_1 ly_1 rx_1 ry_1
lx_2 ly_2 rx_2 ry_2
dots
lx_N ly_N rx_N ry_N輸出格式
令恰好被 張紙重疊覆蓋的區域面積為 ,請依以下格式輸出:
A_1
A_2
dots
A_N範例測資
❌ Unsupported block (heading_4)
輸入:
2
1 1 3 2
2 1 4 2輸出:
2
1說明: 恰好被 張紙覆蓋的區域面積為 ,恰好被 張紙覆蓋的區域面積為 。
❌ Unsupported block (heading_4)
輸入:
2
1 1 3 4
3 4 6 5輸出:
9
0說明: 紙張之間可能完全不重疊。
❌ Unsupported block (heading_4)
輸入:
20
61 98 76 100
70 99 95 100
10 64 96 91
12 37 99 66
63 93 65 95
16 18 18 67
30 47 88 56
33 6 38 8
37 19 40 68
4 56 12 84
3 16 92 78
39 24 67 96
46 1 69 57
40 34 65 65
20 38 51 92
5 32 100 73
7 33 92 55
4 46 97 85
43 18 57 87
15 29 54 74輸出:
1806
990
1013
1221
567
839
413
305
228
121
58
40
0
0
0
0
0
0
0
0029 - 長磚塊 / Long Bricks(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ac
- 難度等級:★5
- 配分:5 點
- 時間限制:4 sec / 空間限制:1024 MiB
題目描述
有一個由 個正方形格子左右排列而成的水平地面。最初,所有格子的地面高度均為 。現在依序堆疊 個高度為 的長方體磚塊。當磚塊接觸到高度為 的表面時,該磚塊頂部的高度會變為 。
第 個堆疊的磚塊放置在恰好覆蓋從左數來第 個到第 個格子的範圍。此時,磚塊會與覆蓋範圍內最高的水平面接觸。
請計算每個磚塊堆疊後,其頂部的高度。
數據範圍
- 所有輸入皆為整數
輸入格式
W N
L_1 R_1
L_2 R_2
dots
L_N R_N輸出格式
請在第 行()以整數輸出第 個堆疊磚塊頂部的高度。
範例測資
❌ Unsupported block (heading_4)
輸入:
100 4
27 100
8 39
83 97
24 75輸出:
1
2
2
3說明: 我們將第 個堆疊的磚塊稱為磚塊 。 磚塊 接觸地面,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。
❌ Unsupported block (heading_4)
輸入:
3 5
1 2
2 2
2 3
3 3
1 2輸出:
1
2
3
4
4說明: 我們將第 個堆疊的磚塊稱為磚塊 。 磚塊 接觸地面,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。 磚塊 接觸磚塊 的頂部,因此頂部高度為 。
❌ Unsupported block (heading_4)
輸入:
10 10
1 3
3 5
5 7
7 9
2 4
4 6
6 8
3 5
5 7
4 6輸出:
1
2
3
4
3
4
5
5
6
7❌ Unsupported block (heading_4)
輸入:
500000 7
1 500000
500000 500000
1 500000
1 1
1 500000
500000 500000
1 500000輸出:
1
2
3
4
5
6
7說明: ※ 此範例測資僅滿足子任務 的限制。
030 - K 個質因數 / K Factors(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ad
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
請計算在 以上 以下的整數中,擁有 種以上相異質因數的整數個數。
數據範圍
- 所有輸入皆為整數
輸入格式
N K輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
15 2輸出:
5說明: 例如, 只有 種質因數,因此不滿足條件; 而 有 種質因數,因此滿足條件。
滿足條件的數共有 這 個。
❌ Unsupported block (heading_4)
輸入:
30 2輸出:
13說明: 滿足條件的數共有 這 個。
❌ Unsupported block (heading_4)
輸入:
200 4輸出:
0❌ Unsupported block (heading_4)
輸入:
869120 1輸出:
869119❌ Unsupported block (heading_4)
輸入:
10000000 3輸出:
6798027031 - 對決 AtCoder / VS AtCoder(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ae
- 難度等級:★6
- 配分:6 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
你以「競技程式設計師隊」成員的身份參加了人氣節目「VS AtCoder」。
該節目的最終遊戲「拿石頭遊戲」的規則如下:
規則 1 有 堆石頭橫向排成一列。從左數來第 堆石頭中,有 顆白石和 顆青石。
規則 2 由先攻開始輪流執行以下操作:
- 選擇一堆白石數量為 顆以上或青石數量為 顆以上的石頭堆,並執行以下操作中的其中一種。設所選石頭堆中現有的白石與青石數量分別為 :
規則 3 最先無法進行操作的人判為輸(失敗)。也就是說,輪到自己回合時,首次出現「對所有石頭堆而言,皆滿足白石為 顆且青石為 顆以下」這種情況的人輸掉遊戲。
你將與該節目的固定班底 E869120 進行一對一直接對決。作為嘉賓特權,你可以自由選擇先攻或後攻。由於這場遊戲的勝負直接決定了整個比賽的勝負,因此你必須在這場遊戲中贏得勝利。
在雙方均採取最佳策略的情況下,為了獲勝,你應該選擇先攻還是後攻?
關於 表示不超過 的最大整數。 例如,、、。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
N
W_1 W_2 … W_N
B_1 B_2 … B_N輸出格式
若你應該選擇先攻,請輸出 First;若應該選擇後攻,請輸出 Second。
範例測資
❌ Unsupported block (heading_4)
輸入:
1
0
2輸出:
First說明: 若你選擇先攻,在最初的操作中可以從唯一的石頭堆中移除 顆青石。 進行此操作後,該石頭堆的狀態變為「僅剩 顆青石」,此時 E869120 無法進行操作而落敗,你獲得勝利。 因此,你應該選擇先攻。
❌ Unsupported block (heading_4)
輸入:
2
10 10
10 10輸出:
Second說明: 若你選擇後攻,在每次輪到自己操作時,只要對另一堆石頭執行與 E869120 剛剛相同的操作,你就能獲勝。因此,你應該選擇後攻。
❌ Unsupported block (heading_4)
輸入:
1
1
1輸出:
Second說明: 你應該選擇後攻。因為遊戲只能按照以下流程進行:
- E869120 最初只能加入 顆青石並移除 顆白石。
- 石頭堆的狀態變為「僅剩 顆青石」。此時你只能進行移除 顆青石的操作。
- 接著,石頭堆的狀態變為「僅剩 顆青石」,輪到 E869120 時無法進行操作。
❌ Unsupported block (heading_4)
輸入:
6
3 1 4 1 5 9
2 7 1 8 2 8輸出:
Second❌ Unsupported block (heading_4)
輸入:
6
1 2 3 4 5 6
1 2 3 4 5 6輸出:
First032 - AtCoder 接力賽 / AtCoder Ekiden(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_af
- 難度等級:★3
- 配分:3 點
- 時間限制:5 sec / 空間限制:1024 MiB
題目描述
ABC 田徑隊有 名驛站接力賽選手。在接力賽中,每位選手負責跑 個區間(棒次)。不能有多名選手負責同一個區間,也不能有一名選手負責多個區間。接力賽路線共有第 區到第 區,選手 跑第 區所需的時間為 。
接力賽將依第 區、第 區、……、第 區的順序,由負責該區間的選手依序奔跑。跑完第 區()的選手必須將接力帶(タスキ)傳遞給跑第 區的選手。此時交接接力帶所花費的時間極短,可忽略不計。最後接到接力帶的選手跑完第 區即為抵達終點。
ABC 田徑隊中流傳著 個傳聞,第 個傳聞為「選手 與選手 關係不好」。被傳聞關係不好的兩位選手之間無法進行接力帶的交接。也就是說,選手 的下一棒不能是選手 ,選手 的下一棒也不能是選手 。
請計算 ABC 田徑隊完成接力賽抵達終點所需時間的最小值。如果無論如何安排各選手負責的區間都無法順利完賽,請改為輸出 -1。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
N
A_{1, 1} A_{1, 2} … A_{1, N}
A_{2, 1} A_{2, 2} … A_{2, N}
⋮
A_{N, 1} A_{N, 2} … A_{N, N}
M
X_1 Y_1
X_2 Y_2
⋮
X_M Y_M輸出格式
輸出抵達終點所需時間的最小值。如果無論如何安排選手負責的區間都無法抵達終點,請輸出 -1。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
1 10 100
10 1 100
100 10 1
1
1 2輸出:
111說明: 讓選手 跑第 區、選手 跑第 區、選手 跑第 區,總耗時為 ,即可達成最小值 。
❌ Unsupported block (heading_4)
輸入:
4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
3
1 2
1 3
2 3輸出:
-1❌ Unsupported block (heading_4)
輸入:
3
1 10 100
10 1 100
100 10 1
0輸出:
3033 - 不要太亮 / Not Too Bright(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ag
- 難度等級:★2
- 配分:2 點
- 時間限制:1 sec / 空間限制:1024 MiB
題目描述
E869120 打算製作一個在冬季展示的燈光造景。 E869120 所規劃的燈光造景由縱向 橫向 共 顆 LED 燈組成。 燈光造景上的每顆 LED 燈都可以自由切換為點亮或熄滅的狀態。
當該燈光造景滿足以下條件時,稱為不恰當的:
- 存在一個完全包含在整個燈光造景內部、大小為縱向 橫向 (包含 顆 LED 燈)的區域,該區域內點亮的 LED 燈數量達到 顆以上。
在所有恰當(即非不恰當狀態)的燈光點亮配置中,求點亮的 LED 燈數量的最大可能值。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
H W輸出格式
輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 3輸出:
2說明:
若以 '#' 表示點亮的 LED,'.' 表示熄滅的 LED,例如以下狀態為符合條件且點亮 LED 數量最多的一種配置:
#.#
...另一方面,以下狀態是不恰當的,因此不滿足條件: 在由上數來第 列、由左數來第 行組成的區域中,存在 顆點亮的 LED。
#.#
.#.❌ Unsupported block (heading_4)
輸入:
3 4輸出:
4說明: 例如以下狀態為符合條件且點亮 LED 數量最多的一種配置:
#..#
....
#..#❌ Unsupported block (heading_4)
輸入:
3 6輸出:
6034 - 元素種類受限 / There are few types of elements(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ah
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 的數列 與一個整數 。 請在滿足以下條件的所有連續子數列中,求出最長子數列的長度:
- 該子數列所包含的元素的值最多只有 種。
數據範圍
- ()
- 輸入的所有數值皆為整數
輸入格式
N K
a_1 a_2 … a_N輸出格式
輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 1
1 2 3 4 5輸出:
1說明:,且數列中的元素值全部互不相同,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
5 4
1 1 2 4 2輸出:
5說明:,而數列中的元素值只有 種,因此包含所有元素的區間皆滿足條件,答案為 。
❌ Unsupported block (heading_4)
輸入:
10 2
1 2 3 4 4 3 2 1 2 3輸出:
4說明: 在滿足條件的區間中,長度最大的是區間 。
035 - 保持連通性 / Preserve Connectivity(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ai
- 難度等級:★7
- 配分:7 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一棵具有 個頂點的樹,頂點編號為 。第 條邊()連接頂點 與 。
給定 個以下形式的詢問,請依 的順序進行回答:
- 從 條邊中選擇若干條邊保留。
- 刪除未被選中的邊之後,使得頂點 全部彼此相互連通。
- 最少需要選擇保留多少條邊?
數據範圍
- 給定的圖為一棵樹
- 輸入的所有數值皆為整數
輸入格式
N
A_1 B_1
A_2 B_2
⋮
A_{N-1} B_{N-1}
Q
K_1 V_{1,1} V_{1,2} ... V_{1,K_1}
K_2 V_{2,1} V_{2,2} ... V_{2,K_2}
⋮
K_Q V_{Q,1} V_{Q,2} ... V_{Q,K_Q}輸出格式
對於 ,請在第 行輸出對應第 個詢問的答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
6
1 2
2 3
3 4
1 5
3 6
5
2 1 2
3 1 3 5
4 2 3 4 5
5 1 2 3 5 6
6 1 2 3 4 5 6輸出:
1
3
4
4
5說明: 在第 個詢問中,頂點 與頂點 由第 條邊相鄰連接,因此只需選擇該邊即可。 其餘詢問亦可同理得出答案。
此外,本組測資滿足子任務 1、4 的限制條件。
❌ Unsupported block (heading_4)
輸入:
6
1 2
2 3
3 4
1 5
3 6
5
2 1 2
2 3 4
2 4 6
2 1 5
2 2 5輸出:
1
1
2
1
2說明: 本組測資滿足子任務 1、2、4 的限制條件。
❌ Unsupported block (heading_4)
輸入:
6
1 2
2 3
3 4
1 5
3 6
5
3 1 2 3
3 1 2 5
3 1 3 6
3 3 4 5
3 4 5 6輸出:
2
2
3
4
5說明: 本組測資滿足子任務 1、3、4 的限制條件。
036 - 最大曼哈頓距離 / Max Manhattan Distance(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_aj
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
在二維坐標平面上有 個互不相同的點 ,點 的坐標為 。
請依序處理以下 個詢問:
- 第 個詢問()中給定一個整數 ,請輸出點 與這 個點之間曼哈頓距離的最大值。
- 也就是說,若將點 與點 的曼哈頓距離記為 ,請輸出 $(P_{q_i}, P_1), , (P_{q_i}, P_N))$ 的值。
關於曼哈頓距離 坐標 與坐標 之間的曼哈頓距離定義為 。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
N Q
x_1 y_1
⋮
x_N y_N
q_1
⋮
q_Q輸出格式
將給定的 個詢問的答案以換行分隔,依序輸出於每行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
-1 2
1 1
-2 -3
1
2
3輸出:
6
7
7說明: 第 個詢問中關注點 :
- 點 與點 的曼哈頓距離為
- 點 與點 的曼哈頓距離為
- 點 與點 的曼哈頓距離為
因此,第 個詢問輸出這些曼哈頓距離的最大值 。
❌ Unsupported block (heading_4)
輸入:
5 3
-2 -2
-1 -1
0 0
1 1
2 2
5
3
1輸出:
8
4
8❌ Unsupported block (heading_4)
輸入:
2 1
-1000000000 -1000000000
1000000000 1000000000
1輸出:
4000000000說明: 請注意數值溢位(Overflow)。
037 - 不留香料 / Don’t Leave the Spice(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ak
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 種需要使用香料的料理,編號為 到 。
料理 ()的價值為 ,製作時會消耗香料。消耗香料的量可以在 以上、 以下的範圍內自由調節。
請判斷是否能達成以下目標;若可以達成,請輸出製作料理的價值總和之最大可能值:
- 從 種料理中挑選若干種並各製作 1 份,使得消耗的香料總量恰好為 。
- 但是,無法透過上述以外的途徑消耗香料。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
W N
L_1 R_1 V_1
L_2 R_2 V_2
⋮
L_N R_N V_N輸出格式
輸出所製作料理的價值總和之最大可能值。
若無法恰好消耗 的香料,請輸出 -1。
範例測資
❌ Unsupported block (heading_4)
輸入:
100 4
30 40 120
30 40 30
30 40 1500
30 40 40輸出:
1660說明: 若製作料理 、料理 、料理 ,各消耗 的香料,則價值總和為 。
❌ Unsupported block (heading_4)
輸入:
100 4
13 15 31415
12 13 92653
29 33 58979
95 98 32384輸出:
-1說明: 無法恰好消耗 的香料。
❌ Unsupported block (heading_4)
輸入:
5000 5
1000 1000 1000000000
1000 1000 1000000000
1000 1000 1000000000
1000 1000 1000000000
1000 1000 1000000000輸出:
5000000000❌ Unsupported block (heading_4)
輸入:
10000 20
4539 6002 485976
1819 5162 457795
1854 2246 487643
1023 4733 393530
1052 6274 289577
1874 2436 167747
1457 4248 452660
2103 4189 174955
3057 5061 319316
4898 4953 394627
1313 2880 154687
1274 1364 259598
3866 5844 233027
1163 5036 386223
1234 4630 155972
2845 4978 442858
3168 5368 171601
3708 4407 394899
3924 4122 428313
2112 4169 441976輸出:
2727026038 - 龐大的最小公倍數 / Large LCM(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_al
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定正整數 。請計算 與 的最小公倍數(LCM)。但是,若答案超過 ,請改為輸出 Large。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
A B輸出格式
輸出 與 的最小公倍數。若答案超過 ,請改為輸出 Large。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 6輸出:
12說明: 與 的最小公倍數為 。 由於答案未超過 ,請輸出 。
❌ Unsupported block (heading_4)
輸入:
1000000000000000000 3輸出:
Large說明: 與 的最小公倍數為 。
由於答案超過 ,請輸出 Large。
❌ Unsupported block (heading_4)
輸入:
1000000000000000000 1輸出:
1000000000000000000說明: 請注意,若答案恰好為 ,請直接輸出該數值。
039 - 樹上距離總和 / Tree Distance(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_am
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一棵具有 個頂點的樹。樹上的頂點分別編號為 到 。 第 條邊雙向連接頂點 與頂點 ,邊長皆為 。
請計算以下式子的值:
其中, 表示從頂點 到頂點 的最短距離。
數據範圍
- 給定的圖為一棵樹
- 輸入的所有數值皆為整數
輸入格式
N
a_1 b_1
a_2 b_2
:
a_{N - 1} b_{N - 1}輸出格式
請將答案輸出於一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
2
1 2輸出:
1說明:,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
4
1 2
1 3
1 4輸出:
9說明: - - - - - -
將以上距離相加得到 ,即為答案。
❌ Unsupported block (heading_4)
輸入:
12
1 2
3 1
4 2
2 5
3 6
3 7
8 4
4 9
10 5
11 7
7 12輸出:
211040 - 獲取更多金錢 / Get More Money(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_an
- 難度等級:★7
- 配分:7 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
在 AtCoder 共和國中有 間房屋,編號為 到 。
一開始,房屋 內放有現金 圓以及 把鑰匙(分別為房屋 的鑰匙),進入房屋即可回收這些物品。 保證對任意的 ()皆滿足 。
此外,要進入房屋 ,必須完成以下兩件事:
- 若 AtCoder 共和國中存在房屋 的鑰匙,必須處於已將它們全部回收的狀態
- 支付費用 圓
你打算透過收集 AtCoder 共和國各房屋內的現金,來賺取盡可能多的金額。若妥善安排進入房屋的順序與選擇,請計算最多能淨賺多少圓。 也就是說,設進入房屋回收的現金總額為 圓,為了進入房屋所支付的費用總額為 圓,請計算 的最大值。 假設若有需要支付進入房屋的費用,隨時皆有足夠的資金可以支付。
數據範圍
- 輸入的所有數值皆為整數
輸入格式
N W
A_1 A_2 … A_N
k_1 c_{1,1} c_{1,2} … c_{1,k_1}
k_2 c_{2,1} c_{2,2} … c_{2,k_2}
⋮
k_N c_{N,1} c_{N,2} … c_{N,k_N}輸出格式
請將最終獲得的金額(淨利)之最大值輸出於一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 5
5 2 10 3 6
1 3
1 3
0
1 5
0輸出:
2說明: 依序進入房屋 為最優策略,可獲得 圓。
❌ Unsupported block (heading_4)
輸入:
6 10
8 6 9 1 2 0
1 3
2 3 4
1 5
1 5
1 6
0輸出:
0說明: 有時不進入任何房屋為最優選擇。
041 - AtCoder 農場的木樁 / Piles in AtCoder Farm(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ao
- 難度等級:★7
- 配分:7 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
AtCoder 農場中有 根木樁,第 根木樁釘在座標 的位置。
你想建造一道圍牆將所有的木樁包圍起來,並在圍牆邊界(周上)以及圍牆內部的所有整數座標點(格子點)上都釘上木樁。
由於建造太長的圍牆很累,因此你想在所有能包圍全部現有木樁的圍牆中,建造周長最短的一道圍牆。
請計算你新需要釘下的木樁數量。
保證木樁的粗細與圍牆的厚度均可忽略不計。
數據範圍
- 若 ,則
- 所有輸入皆為整數
輸入格式
N
X_1 Y_1
X_2 Y_2
⋮
X_N Y_N輸出格式
輸出你需要新釘下的木樁數量。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
1 4
6 1
5 8輸出:
17說明: 你所建造的圍牆形狀為包圍這 3 個點的凸多邊形。 此時圍牆的周長為 ,不存在周長更短且能包圍所有木樁的圍牆。 需要新釘上木樁的點為 ,共 根木樁,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
3
2 2
2 3
3 2輸出:
0說明: 也有可能不需要釘下任何新的木樁。
❌ Unsupported block (heading_4)
輸入:
3
2 39
39 35
17 5輸出:
599說明: 新需要釘下 根木樁。
❌ Unsupported block (heading_4)
輸入:
10
72 7
54 25
97 48
37 47
34 54
4 16
62 1
59 22
99 73
34 75輸出:
4828說明: 新需要釘下 根木樁。
❌ Unsupported block (heading_4)
輸入:
30
878317816 654163251
686185971 65193664
421988001 893301255
337790787 848308131
116633641 453711858
147679897 275450390
871549713 368160131
945135251 515070794
113677189 553747963
648722370 798825746
334960984 163211483
477414168 849868430
46724716 593116536
424597820 84043071
456749260 981436379
167906984 546584517
187306934 201207913
535850448 43428774
602081737 111568378
607467836 80430906
965538187 537789555
69199019 485172741
267885487 934316143
883812229 276272851
507976072 19708905
951100460 639017801
43859603 556279043
300658736 79240016
231304846 220059094
854667690 399502355輸出:
607281204170558988說明: 請注意輸出的答案可能超出 32 位元整數的範圍。
042 - 9 的倍數 / Multiple of 9(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ap
- 難度等級:★4
- 配分:4 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
請計算僅由非 數字(即 )組成的正整數 中,同時滿足以下條件的正整數共有多少個?並將答案對 取模後輸出。
- 是 的倍數
- 將 以十進位表示時,各個數位之和為
數據範圍
- 為整數
輸入格式
K輸出格式
請將答案輸出在一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
1輸出:
0說明: 僅由非 數字組成的正整數中,各數位之和為 的數只有 。 由於 不是 的倍數,因此不存在符合條件的整數 。故答案為 種。
❌ Unsupported block (heading_4)
輸入:
234輸出:
757186539說明: 請注意需要輸出對 取模後的餘數。
043 - 睡眠不足的迷宮挑戰 / Maze Challenge with Lack of Sleep(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_aq
- 難度等級:★4
- 配分:4 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
有一個由 行 列組成的網格狀迷宮,從上數來第 行、從左數來第 列的格子記為 。當 # 時該格子為牆壁;當 . 時該格子不是牆壁(為通道)。
你想透過重複移動到上下左右相鄰且非牆壁的格子,從格子 移動到格子 。然而,如果移動方向改變的次數過多會讓大腦感到疲倦,因此轉向次數越少越好。此外,不能移動到迷宮外部。
請計算移動方向改變次數(轉向次數)的最小值。
數據範圍
- 皆為整數
- 為
#或. - 皆為
. - 保證可以從格子 移動到格子
輸入格式
H W
r_s c_s
r_t c_t
S_{1,1} S_{1,2} … S_{1,W}
⋮
S_{H,1} S_{H,2} … S_{H,W}輸出格式
輸出轉向次數的最小值。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
1 1
3 3
..#
#.#
#..輸出:
2說明: 沿著最優路徑前進時,在格子 和格子 各改變了一次移動方向,共改變 次方向。
❌ Unsupported block (heading_4)
輸入:
3 3
2 1
2 3
#.#
...
#.#輸出:
0❌ Unsupported block (heading_4)
輸入:
4 6
2 1
1 5
...#..
.#.##.
.#....
...##.輸出:
5044 - 平移與交換 / Shift and Swapping(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ar
- 難度等級:★3
- 配分:3 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
給定一個長度為 的整數數列 。請依序處理以下 個操作:
- 當 時:交換數列中第 項()與第 項()的值。
- 當 時:將數列向右平移(循環右移)一位。也就是說,將數列變為 。
- 當 時:求出此時數列中第 項()的值。
數據範圍
- ()
- ()
- 若 ,則 且
- 若 ,則
- 若 ,則 且
- 輸入中的所有數值皆為整數
輸入格式
N Q
A_1 A_2 … A_N
T_1 x_1 y_1
⋮
T_Q x_Q y_Q輸出格式
對於所有 的查詢,依序輸出其答案,每個答案佔一行。
範例測資
❌ Unsupported block (heading_4)
輸入:
8 5
6 17 2 4 17 19 1 7
2 0 0
1 7 2
1 2 6
1 4 5
3 4 0輸出:
4說明: 最初,數列為 。 第 1 個操作將數列向右平移,操作後數列變為 。 第 2 個操作交換數列的第 項與第 項,操作後數列變為 。 第 3 個操作交換數列的第 項與第 項,操作後數列變為 。 第 4 個操作交換數列的第 項與第 項,操作後數列變為 。 第 5 個操作輸出數列第 項的值 。
❌ Unsupported block (heading_4)
輸入:
9 6
16 7 10 2 9 18 15 20 5
2 0 0
1 1 4
2 0 0
1 8 5
2 0 0
3 6 0輸出:
18說明: 最初,數列為 。 第 1 個操作後,數列變為 。 第 2 個操作後,數列變為 。 第 3 個操作後,數列變為 。 第 4 個操作後,數列變為 。 第 5 個操作後,數列變為 。 第 6 個操作輸出數列第 項的值 。
❌ Unsupported block (heading_4)
輸入:
11 18
23 92 85 34 21 63 12 9 81 44 96
3 10 0
3 5 0
1 3 4
2 0 0
1 4 11
3 11 0
1 3 5
2 0 0
2 0 0
3 9 0
2 0 0
3 6 0
3 10 0
1 6 11
2 0 0
3 10 0
3 4 0
3 5 0輸出:
44
21
34
63
85
63
21
34
96045 - 簡易分組 / Simple Grouping(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_as
- 難度等級:★6
- 配分:6 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
在歐幾里得平面上有 個點 , , , 。 考慮將這 個點分成 個分組,且必須滿足以下條件:
- 每個點不能屬於多個分組。
- 每個點都必須屬於某個分組。
- 不能存在任何沒有包含任何點的分組(即不可有空分組)。
在所有滿足條件的分組方案中,請最小化「同一分組內兩點間距離的最大值」。 請輸出此時同一分組內兩點間距離最大值的平方。
保證此時最大值的平方一定為整數。
數據範圍
- 若 ,則
- 所有輸入皆為整數
輸入格式
N K
X_1 Y_1
X_2 Y_2
⋮
X_N Y_N輸出格式
在所有可能的分組方案中,計算同一分組內兩點間距離最大值的最小值,並將該最小值的平方以整數形式輸出在一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 2
0 1
1 2
2 0輸出:
2說明: 若分成 與 兩組,則同一組內兩點間距離的最大值為 ,這是所有分組方案中的最小值。因此輸出其平方值 。
❌ Unsupported block (heading_4)
輸入:
5 3
0 0
1 1
0 2
2 3
3 1輸出:
4說明: 若分成 、、 三組,兩點間距離的最大值為 。 若分成 、、,此時同一組內兩點間距離最大值分別為 與 。
❌ Unsupported block (heading_4)
輸入:
10 4
0 3
3 5
2 7
9 0
5 6
4 3
7 8
6 5
9 9
2 1輸出:
20❌ Unsupported block (heading_4)
輸入:
3 2
0 0
500000000 500000000
1000000000 1000000000輸出:
500000000000000000046 - 我愛 46 / I Love 46(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_at
- 難度等級:★3
- 配分:3 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
給定三個長度均為 的整數數列 、、。
請計算滿足 是 的倍數的三元組 ()的組合總數。
數據範圍
- 所有輸入皆為整數
輸入格式
N
A_1 A_2 … A_N
B_1 B_2 … B_N
C_1 C_2 … C_N輸出格式
將答案輸出在一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
10 13 93
5 27 35
55 28 52輸出:
3說明: 使 為 的倍數的三元組 共有 、、 這 組。
❌ Unsupported block (heading_4)
輸入:
3
10 56 102
16 62 108
20 66 112輸出:
27說明: 無論如何選擇,這三個整數之和都是 的倍數。
❌ Unsupported block (heading_4)
輸入:
20
238 395 46 238 264 114 354 52 324 14 472 64 307 280 209 24 165 194 179 248
270 83 377 332 173 21 362 75 66 342 229 117 124 481 48 235 376 13 420 74
175 427 76 278 486 169 311 47 348 225 41 482 355 356 263 95 170 156 340 289輸出:
183047 - 單色對角線 / Monochromatic Diagonal(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_au
- 難度等級:★7
- 配分:7 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
給定兩個僅由字元 R、G、B 組成且長度均為 的字串 。
令 的第 個字元為 , 的第 個字元為 。
現有一個 的網格,並依照以下規則給網格塗色。
此處,將字元 R、G、B 分別對應為紅色、綠色、藍色:
- 當 時,將從上數來第 行、從左數來第 列的格子塗成顏色 。
- 當 時,將從上數來第 行、從左數來第 列的格子塗成紅、綠、藍三種顏色中與 和 皆不同的第三種顏色。
在這個網格中,共有 條由左上往右下延伸的斜列(對角線)。 請計算有多少條斜列上的所有格子都被塗成了同一種顏色。
更嚴格地說,請計算滿足以下條件的整數 共有多少個:
- 存在某種顏色 ,使得對於所有滿足 且 的整數 ,格子 的顏色皆為 。
數據範圍
- 僅由字元
R、G、B組成
輸入格式
N
S
T輸出格式
請將所有格子均塗為相同顏色的斜列數量輸出在一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
5
RGBGB
GRGRB輸出:
6說明: 滿足條件的 共有 個,分別為 。 例如, 符合條件,因為格子 和 都被塗成了綠色。
❌ Unsupported block (heading_4)
輸入:
3
RRR
BBB輸出:
5❌ Unsupported block (heading_4)
輸入:
10
BGGGRBBGRG
RGBBRGRGGG輸出:
4048 - 我不會留級 / I will not drop out(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_av
- 難度等級:★3
- 配分:3 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
有一場包含 道題目的考試。第 道題目的滿分為 分,部分分為 分。此處部分分小於滿分且大於滿分的一半,即滿足 。
E869120 君對於任何一道題目,只要花費 分鐘就能獲得該題的部分分;如果再花費 分鐘(累計花費 分鐘),就能獲得該題的滿分。
在考試時間共 分鐘內,請計算 E869120 君所能獲得的總得分的最大值。
數據範圍
- 所有輸入皆為整數
輸入格式
N K
A_1 B_1
A_2 B_2
⋮
A_N B_N輸出格式
請輸出 E869120 君在 分鐘內所能獲得的總得分的最大值。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 3
4 3
9 5
15 8
8 6輸出:
21說明: E869120 君可以在第 題花費 分鐘取得滿分 分,並在第 題花費 分鐘取得部分分 分,總共獲得 分。 由於無法獲得超過 分,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
2 2
7 6
3 2輸出:
8❌ Unsupported block (heading_4)
輸入:
10 12
987753612 748826789
36950727 36005047
961239509 808587458
905633062 623962559
940964276 685396947
959540552 928301562
60467784 37828572
953685176 482123245
87983282 66762644
912605260 709048491輸出:
6437530406049 - 翻轉數位 2 / Flip Digits 2(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_aw
- 難度等級:★6
- 配分:6 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
E869120 君有一個長度為 的二進位字串 。最初, 的所有字元都是 0。
ABC 商店中販售 個道具,編號分別為 到 。道具 的售價為 元,使用該道具可以將 中第 到第 個字元進行翻轉。也就是說,將 的第 個字元中,原為 0 的變為 1,原為 1 的變為 0。
E869120 君希望從這 個道具中購買若干個,使得以下條件得到滿足:
條件:對於任意長度為 的二進位字串 (共有 種可能),都可以透過從已購買的道具中選擇道具並使用任意次(也可以是 次),將 變換為 。
請計算為了滿足條件,他所需要購買道具的總金額的最小值。
如果即使買下所有道具也無法滿足條件,請輸出 -1。
數據範圍
- 所有輸入皆為整數
輸入格式
N M
C_1 L_1 R_1
C_2 L_2 R_2
⋮
C_M L_M R_M輸出格式
如果買下所有道具仍無法滿足條件,請輸出 -1。
否則,輸出為了滿足條件 E869120 君需要購買道具的總金額最小值。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 3
1 1 1
1 2 2
10 1 2輸出:
2說明:
考慮購買道具 的情況。
對於每個 ,例如可以透過以下操作將 變換為 :
- 當 00 時:不進行任何操作
- 當 01 時:使用道具
- 當 10 時:使用道具
- 當 11 時:先使用道具 ,接著使用道具
此時總金額為 元,為最小值。
❌ Unsupported block (heading_4)
輸入:
2 3
1 1 1
10 2 2
1 1 2輸出:
2說明:
考慮購買道具 的情況。
對於每個 ,例如可以透過以下操作將 變換為 :
- 當 00 時:不進行任何操作
- 當 01 時:先使用道具 ,接著使用道具
- 當 10 時:使用道具
- 當 11 時:使用道具
此時總金額為 元,為最小值。
❌ Unsupported block (heading_4)
輸入:
4 5
3 1 2
5 2 4
9 3 4
4 1 4
8 2 4輸出:
-1說明: 輸入中可能包含具有相同 的多個道具。
❌ Unsupported block (heading_4)
輸入:
9 11
10 2 7
100 1 6
1 2 8
39 4 5
62 3 4
81 1 3
55 8 8
91 5 5
14 8 9
37 5 5
41 7 9輸出:
385050 - 階梯跳躍 / Stair Jump(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ax
- 難度等級:★3
- 配分:3 點
- 時間限制:2 秒 / 空間限制:1024 MiB
題目描述
E869120 君準備爬上一座共有 階的樓梯。他一步可以往上爬 階或 階。
請計算從第 階出發、到達第 階的移動方法共有多少種,並將答案對 取模後輸出。
數據範圍
- 所有輸入皆為整數
輸入格式
N L輸出格式
請將答案輸出在一行中。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 2輸出:
3說明: 移動方法共有以下 種: - 爬 階 爬 階 爬 階 - 爬 階 爬 階 - 爬 階 爬 階
❌ Unsupported block (heading_4)
輸入:
4 4輸出:
2說明: 有一步一步爬 階的方法,以及一口氣爬 階的方法。
❌ Unsupported block (heading_4)
輸入:
5 2輸出:
8❌ Unsupported block (heading_4)
輸入:
6783 125輸出:
674508908說明: 請注意需要輸出對 取模後的餘數。
051 - 典型商店 / Typical Shop(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ay
- 難度等級:★5
- 配分:5 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
典型商店中有 件互相可區分的商品。商品編號為 ,其中商品 的價格為 元。
你想從商店販售的商品中恰好挑選 件,且使得總價格在 元以下。請問一共有多少種不同的挑選方式?
注意:如果存在某個商品 ,在一種挑選方式中被選中而在另一種方式中未被選中,則這兩種挑選方式視為不同。
數據範圍
- ()
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N K P
A_1 A_2 … A_N輸出格式
輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 2 10
3 8 7 5 11輸出:
2說明: 恰好挑選 件商品且總價格在 元以下的挑選方式有以下 種: - 選擇商品 與商品 ( 元) - 選擇商品 與商品 ( 元)
❌ Unsupported block (heading_4)
輸入:
5 1 10
7 7 7 7 7輸出:
5說明: 請注意,即使商品的價格相同,也視為不同的商品。
❌ Unsupported block (heading_4)
輸入:
40 20 100
1 3 1 3 4 1 3 5 5 3 3 4 1 5 4 4 3 1 3 4 1 3 2 4 4 1 5 2 5 3 1 3 3 3 5 5 5 2 3 5輸出:
137846528820說明: 請注意答案可能超出 位元整數的表示範圍。
052 - 骰子乘積 / Dice Product(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_az
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 個 面骰子,編號分別為 。骰子 的第 個面()上寫著整數 。對於每個骰子,其各面上所寫的整數皆不相同。
現在,我們將擲出骰子的點數定義得分如下: - 得分為 個骰子擲出點數的總乘積。 - 也就是說,若骰子 擲出的點數為 ,則得分計算為 。
擲這 個骰子一共有 種可能的結果。請計算所有可能結果的得分總和 除以 的餘數。此處假設所有骰子彼此皆可區分。
數據範圍
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N
A_{1,1} A_{1,2} A_{1,3} A_{1,4} A_{1,5} A_{1,6}
⋮
A_{N,1} A_{N,2} A_{N,3} A_{N,4} A_{N,5} A_{N,6}輸出格式
輸出 除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
2
1 2 3 5 7 11
4 6 8 9 10 12輸出:
1421說明: 例如,若擲出的點數分別為 ,則得分為 。擲骰子的結果共有 種可能,所有可能得分的總和為 。
❌ Unsupported block (heading_4)
輸入:
1
11 13 17 19 23 29輸出:
112說明: 只有 個骰子時,答案即為該骰子各面上所寫整數的總和。
❌ Unsupported block (heading_4)
輸入:
7
19 23 51 59 91 99
15 45 56 65 69 94
7 11 16 34 59 95
27 30 40 43 83 85
19 23 25 27 45 99
27 48 52 53 60 81
21 36 49 72 82 84輸出:
670838273說明: 得分總和為 ,請注意應輸出 除以 的餘數 。
053 - 離散探測 / Discrete Dowsing(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ba
- 難度等級:★7
- 配分:7 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
這是一道互動題(Interactive Problem)。
請針對 組測試資料求解以下問題:
有一個隱藏的長度為 的非負整數數列 以及一個整數 ()。已知數列 滿足以下條件: - 當 時,(嚴格單調遞增) - 當 時,(嚴格單調遞減)
在給定整數 後,你可以發送若干次查詢。在一次查詢中,你可以指定一個滿足 的索引 來獲取 的值。請用盡可能少的查詢次數找出數列 的最大值(詳見子任務與計分)。
❌ Unsupported block (heading_4)
本題的分數根據所有測試資料中單一測試資料的最大查詢次數 計算: - 若 ,得 點 - 若 ,得 點 - 若 ,得 點 - 若 ,得 點 - 若 ,得 點
數據範圍
- ()
- 所有輸入值皆為整數
輸入格式
首先,標準輸入會給出測試資料組數 :
T隨後進行 組測試資料的互動。
每組測試資料開始時,由標準輸入給定數列長度 :
N發送查詢時,請依照以下格式輸出至標準輸出:
? i評判系統會對此查詢返回數列中該位置的值:
A_i當確定數列 的最大值為 時,請依照以下格式輸出答案:
! A_{max}輸出答案後,若還有下一組測試資料則繼續處理;若無則請立即結束程式。
若你的程式輸出了無效的查詢,評判系統將輸入 -1。此時請立即終止程式。
輸出格式
本題為互動題,請依照上述互動協議進行輸出,並在每次輸出後清空標準輸出緩衝區(flush)。
注意事項
- 本題的評判是自適應的(Adaptive)。換句話說,只要與先前所有查詢的結果不產生矛盾,數列的內容可能會在互動過程中發生改變。
- 在輸出所有測試資料的答案後,或收到
1後,若未立即結束程式,評測結果將未定義。 - 每次輸出後請務必清空標準輸出緩衝區(flush),否則可能會導致
TLE。 - 由於 AtCoder 系統特性,只要獲得 點以上就會顯示為
AC(即使為AC也不代表獲得滿分)。
範例測資
❌ Unsupported block (heading_4)
互動過程說明:
| 輸入 | 輸出 | 說明 |
| :— | :— | :— |
| 1 | | |
| 8 | | 第 組測試資料, |
| | ? 6 | 查詢 |
| 6 | | 返回 |
| | ? 7 | 查詢 |
| 9 | | 返回 |
| | ? 8 | 查詢 |
| 1 | | 返回 |
| | ! 9 | 回答最大值為 |
說明: 隱藏數列 為 ,。數列 的最大值為 。 例如,在第 次查詢結束時,數列 也可以是 ,因為這與當前已查詢的內容不矛盾,評判系統有可能動態調整成該數列。
❌ Unsupported block (heading_4)
互動過程說明:
| 輸入 | 輸出 | 說明 |
| :— | :— | :— |
| 2 | | |
| 1 | | 第 組測試資料, |
| | ? 1 | 查詢 |
| 0 | | 返回 |
| | ! 0 | 回答最大值為 |
| 1 | | 第 組測試資料, |
| | ? 1 | 查詢 |
| 1000000000 | | 返回 |
| | ! 1000000000 | 回答最大值為 |
054 - 高橋數 / Takahashi Number(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bb
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
由於研究員高橋先生撰寫了大量的共同著作論文,同行們出於敬意與幽默感,創造了「高橋數」的概念。每位研究員的高橋數定義如下: - 高橋先生的高橋數為 。 - 若某位研究員曾與高橋數為 的研究員共同發表過論文,且未曾與高橋數小於 的研究員共同發表過論文,則該研究員的高橋數定義為 。 - 若根據上述規則無法決定高橋數,則該研究員的高橋數未定義(不存在)。
目前,在這個世界上包括高橋先生在內共有 位研究員,共發表了 篇合著論文。第 篇合著論文由 位研究員 共同撰寫。在此,高橋先生為研究員 。 請問:對於這 位研究員中的每一位,其高橋數是否已定義?若有定義,其數值為多少?
數據範圍
- 輸入的所有數值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N M
K_1
R_{1,1} … R_{1,K_1}
⋮
K_M
R_{M,1} … R_{M,K_M}輸出格式
輸出共有 行。第 行()若研究員 的高橋數存在,輸出其高橋數;若不存在,輸出 -1。
範例測資
❌ Unsupported block (heading_4)
輸入:
6 3
3
1 2 3
2
3 4
2
5 6輸出:
0
1
1
2
-1
-1說明: 位研究員的高橋數分別求法如下: - 研究員 (高橋先生)根據定義高橋數為 。 - 研究員 曾與高橋數為 的研究員 合著,且未曾與高橋數小於 的研究員合著,因此高橋數為 。 - 研究員 曾與高橋數為 的研究員 合著,且未曾與高橋數小於 的研究員合著,因此高橋數為 。 - 研究員 彼此合著,但未曾與任何已有定義高橋數的研究員合著,因此高橋數未定義。
綜上所述,從研究員 到 的高橋數依序為 。
❌ Unsupported block (heading_4)
輸入:
4 3
2
1 2
2
2 3
2
3 4輸出:
0
1
2
3❌ Unsupported block (heading_4)
輸入:
4 1
3
2 3 4輸出:
0
-1
-1
-1❌ Unsupported block (heading_4)
輸入:
11 5
4
2 6 9 10
3
1 3 8
5
2 4 6 8 10
2
6 7
4
5 6 7 8輸出:
0
2
1
2
2
2
2
1
3
2
-1055 - 選取五個數 / Select 5(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bc
- 難度等級:★2
- 配分:2 點
- 時間限制:5 sec / 空間限制:1024 MiB
題目描述
給定 個整數 。 請計算從中選取 個整數的方法數,使得這 個整數的乘積除以 的餘數為 。
數據範圍
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N P Q
A_1 A_2 A_3 … A_N輸出格式
輸出一行表示滿足條件的組合數。
範例測資
❌ Unsupported block (heading_4)
輸入:
6 7 1
1 2 3 4 5 6輸出:
1說明: 只有選取 時(,),乘積除以 的餘數才為 。
❌ Unsupported block (heading_4)
輸入:
10 1 0
0 0 0 0 0 0 0 0 0 0輸出:
252056 - 幸運福袋 / Lucky Bag(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bd
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
在高橋屋百貨公司,將連續 天舉辦新春特賣活動。 在第 ()天,將販售 元的福袋 A 與 元的福袋 B。
低橋君打算在這 天內,每天都前往高橋屋購買福袋 A 或福袋 B 兩者之一。(每天必須且只能購買一件,不能什麼都不買。) 他希望在 天內購買的 個福袋總金額恰好為 元。
由於低橋君不擅長計算,請你代為規劃符合條件的福袋購買計畫。 如果不存在滿足條件的購買計畫,請回報無解。
數據範圍
- ()
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N S
A_1 B_1
A_2 B_2
⋮
A_N B_N輸出格式
請以長度為 的字串 輸出滿足題目條件的購買計畫:
- 若第 ()天購買福袋 A,則 'A';若購買福袋 B,則 'B'。
如果不存在滿足條件的購買計畫,請輸出 'Impossible'。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 34
3 14
15 9
26 5輸出:
BAB說明: 依照以下方式購買,總金額恰好為 元: - 第 天購買福袋 B( 元) - 第 天購買福袋 A( 元) - 第 天購買福袋 B( 元)
❌ Unsupported block (heading_4)
輸入:
5 77
1 16
3 91
43 9
4 26
23 11輸出:
BABBA說明:
按照此種購買方式,總金額為 元。
除此之外,輸出 BAAAB 其總金額亦為 元,同樣為正確答案。
❌ Unsupported block (heading_4)
輸入:
5 59
8 13
55 5
58 8
23 14
4 61輸出:
Impossible說明: 也有可能不存在滿足條件的購買方式。
057 - 翻轉開關 / Flip Flap(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_be
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 個編號為 的面板,所有面板一開始皆為背面朝上。 此外,你面前有 個編號為 的開關。按下開關 會觸發以下事件: - 個面板 會被翻轉,正反面狀態改變。
在此,每個開關一旦按下後便不能再按第二次。
你的任務是將這 個面板的正反面狀態調整為期望的狀態。期望的狀態由長度為 且由 0 和 1 組成的序列 給定,其中 代表希望面板 背面朝上, 代表希望面板 正面朝上。
不考慮按下順序時,一共有 種按下開關的組合方式。請問其中有多少種方式能達到期望的狀態?由於答案可能非常大,請輸出答案除以 的餘數。
數據範圍
- 或
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N M
T_1
A_{1,1} … A_{1,T_1}
⋮
T_N
A_{N,1} … A_{N,T_N}
S_1 … S_M輸出格式
輸出能滿足期望狀態的開關按下方案數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 3
2
1 2
2
2 3
1 0 1輸出:
1說明: 按下開關 與開關 ,可以使 個面板的正反面狀態符合期望。此外不存在其他方式能使 個面板符合期望,因此答案為 種。
❌ Unsupported block (heading_4)
輸入:
2 3
1
1
1
2
0 1 1輸出:
0說明: 不存在任何能改變面板 狀態的開關,因此無法將面板 變為正面朝上。故答案為 種。
❌ Unsupported block (heading_4)
輸入:
3 2
1
1
1
2
1
2
1 0輸出:
2說明: 使 個面板符合期望的開關按下方式有以下 種: - 僅按下開關 。 - 按下開關 全部。
❌ Unsupported block (heading_4)
輸入:
13 6
3
1 3 5
3
1 4 5
4
3 4 5 6
2
2 5
4
1 2 3 5
3
3 4 6
3
4 5 6
6
1 2 3 4 5 6
4
1 3 5 6
3
1 2 4
3
1 5 6
4
1 2 3 4
1
5
1 0 0 1 0 0輸出:
128058 - 奇特計算機 / Original Calculator(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bf
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
你擁有一台奇特的計算機。這台計算機可以顯示一個介於 到 之間的整數。計算機上有一個名為 按鈕 A 的按鈕。當螢幕上顯示整數 時,按下一次按鈕 A 會依序執行以下處理: - 計算 在十進位表示下的各位數字之和,記為 。 - 計算 除以 的餘數,記為 。 - 將螢幕上顯示的整數更新為 。
例如,當顯示 時按下一次按鈕 A,由於 ,顯示的整數將變更為 。
現在,這台計算機上顯示著整數 。請計算按下按鈕 A 恰好 次後,計算機上顯示的整數。
數據範圍
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N K輸出格式
輸出按下按鈕 A 共 次後顯示的整數。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 3輸出:
13說明: - 第 次按下按鈕 A 後顯示的整數為 。 - 第 次按下按鈕 A 後顯示的整數為 。 - 第 次按下按鈕 A 後顯示的整數為 。
❌ Unsupported block (heading_4)
輸入:
0 100輸出:
0說明: - 顯示 時按下按鈕 A,顯示的整數依然是 。
❌ Unsupported block (heading_4)
輸入:
99999 1000000000000000000輸出:
84563059 - 大量圖查詢 / Many Graph Queries(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bg
- 難度等級:★7
- 配分:7 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
給定一個具有 個頂點與 條邊的有向圖。在此圖中,邊 從頂點 指向頂點 。
請回答 個以下形式的查詢: - 查詢 :能否沿著有向邊的方向,從頂點 移動到頂點 ?
數據範圍
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N M Q
X_1 Y_1
X_2 Y_2
⋮
X_M Y_M
A_1 B_1
A_2 B_2
⋮
A_Q B_Q輸出格式
輸出共有 行。第 行若能從頂點 移動到頂點 輸出 Yes,否則輸出 No。
範例測資
❌ Unsupported block (heading_4)
輸入:
6 6 3
1 3
2 4
1 4
4 6
5 6
1 5
2 6
1 5
3 6輸出:
Yes
Yes
No說明: 在第 個查詢中,分別可以經由路徑 與 進行移動。 在第 個查詢中,無法從頂點 移動到頂點 。
❌ Unsupported block (heading_4)
輸入:
3 2 2
1 2
1 2
1 2
2 3輸出:
Yes
No說明: 圖中可能包含重邊(不一定是簡單圖)。
❌ Unsupported block (heading_4)
輸入:
2 1 1
1 2
1 2輸出:
Yes060 - 奇美拉 / Chimera(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bh
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 的數列 。 我們考慮 的一個(不一定連續的)子序列 ,且滿足以下條件:
條件:存在一個整數 (),使得以下兩個條件同時成立: - 對於所有滿足 的 ,皆成立 (前半部分嚴格單調遞增) - 對於所有滿足 的 ,皆成立 (後半部分嚴格單調遞減)
請找出 的長度(元素個數) 的最大可能值。
數據範圍
- 所有輸入值皆為整數
輸入格式
輸入以以下格式由標準輸入給出:
N
A_1 A_2 … A_N輸出格式
輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
6
1 2 3 3 2 1輸出:
5說明: 從 得到子序列 。 若取 ,則 滿足條件,其元素個數為 。 不存在長度大於 且滿足條件的子序列,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
4
1 2 3 4輸出:
4❌ Unsupported block (heading_4)
輸入:
5
3 3 3 3 3輸出:
1061 - 牌堆 / Deck(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bi
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
你為了整理卡牌,要建立一個牌堆。 最初,牌堆中沒有任何卡牌。
接下來將進行 次操作。第 次操作 如下:
- 當 時:將寫有整數 的卡牌放入牌堆的最上方。
- 當 時:將寫有整數 的卡牌放入牌堆的最下方。
- 當 時:將牌堆從上方數來第 張卡牌上所寫的整數寫在紙上。
請撰寫一個程式,依操作順序輸出所有 的操作中所記錄的整數。
數據範圍
- 當 時,
- 當 時,( 為滿足 且 的 的個數)
- 至少存在一個 滿足
- 至少存在一個 滿足
- 所有輸入皆為整數
輸入格式
Q
t_1 x_1
t_2 x_2
:
t_Q x_Q輸出格式
在給定的 次操作中,將所有 操作所記錄的整數依序每行輸出一個。
範例測資
❌ Unsupported block (heading_4)
輸入:
6
1 2
1 1
2 3
3 1
3 2
3 3輸出:
1
2
3說明: 各次操作後牌堆的狀態如下:
- 第 次操作後:卡牌上的整數由上至下依序為
- 第 次操作後:卡牌上的整數由上至下依序為
- 第 次操作後:卡牌上的整數由上至下依序為
因此,記錄下來的整數依序為 、、。
❌ Unsupported block (heading_4)
輸入:
6
2 1
3 1
2 2
3 1
2 3
3 1輸出:
1
1
1說明: 僅進行將卡牌放入牌堆最下方的操作。 最初放入寫有 的卡牌,因此在 時記錄下的數字始終為 。
❌ Unsupported block (heading_4)
輸入:
6
1 1000000000
2 200000000
1 30000000
2 4000000
1 500000
3 3輸出:
1000000000062 - 全部塗黑 / Paint All(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bj
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 顆白色球與 個道具。球與道具分別編號為 到 。 對於道具 ,已知以下事項:
- 當且僅當球 與球 中至少有一顆是白色時,才可以使用該道具。
- 使用該道具後,可以將球 塗成黑色。
請判定是否能藉由以適當的順序使用這 個道具,將所有的球都塗成黑色。 若可行,請輸出其中一種使用道具的順序。
數據範圍
- 所有輸入皆為整數
輸入格式
N
A_1 B_1
A_2 B_2
⋮
A_N B_N輸出格式
若無法將所有的球都塗成黑色,請輸出 -1。
若可行,請依以下格式輸出:
X_1
X_2
⋮
X_N其中 表示第 個使用的道具編號。 這裡必須滿足 、 且 皆為整數。
若存在多種可行的道具使用順序,輸出其中任意一種皆可。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
3 4
1 3
2 3
2 1輸出:
4
2
1
3說明: 以下說明此輸出範例為正確解答:
- 球 與球 均為白色,因此可以使用道具 將球 塗成黑色。
- 球 與球 均為白色,因此可以使用道具 將球 塗成黑色。
- 雖然球 已是黑色,但球 仍為白色,因此可以使用道具 將球 塗成黑色。
- 雖然球 已是黑色,但球 仍為白色,因此可以使用道具 將球 塗成黑色。
如此一來,所有的球都被塗成了黑色。 請注意,即使操作後 都變成黑色,只要在操作前其中至少有一顆為白色即可。
此外,以 的順序使用道具也是可行的。
❌ Unsupported block (heading_4)
輸入:
3
1 1
2 2
3 3輸出:
3
2
1說明: 以任意順序使用道具皆可。
另外請注意,本題中可能出現 的情況。
❌ Unsupported block (heading_4)
輸入:
5
3 4
4 5
1 1
5 1
3 2輸出:
-1說明: 無論如何都無法將所有的球塗成黑色。
❌ Unsupported block (heading_4)
輸入:
6
5 5
2 4
6 6
5 2
1 3
4 1輸出:
1
5
3
6
4
2說明: 此輸出為唯一的正確答案。
❌ Unsupported block (heading_4)
輸入:
10
5 1
3 9
7 8
9 3
3 7
10 10
3 5
4 7
1 1
6 6輸出:
-1063 - 單色子網格 / Monochromatic Subgrid(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bk
- 難度等級:★4
- 配分:4 點
- 時間限制:4 sec / 空間限制:1024 MiB
題目描述
給定一個高 行、寬 列的網格,由上數來第 行、由左數來第 列的格子記為 。格子 上寫有整數 。
從此網格中選取(不一定需要連續的) 個以上的行與 個以上的列所構成的「子網格」,若滿足以下條件,則稱為好的子網格。
條件:設選取的行為 ,選取的列為 ,則所有格子 上所寫的整數皆相同。
請計算好的子網格之大小可能的最大值。 其中,由 個行與 個列組成的子網格之大小定義為 。
數據範圍
- 所有輸入皆為整數
輸入格式
H W
P_{1, 1} P_{1, 2} … P_{1, W}
P_{2, 1} P_{2, 2} … P_{2, W}
⋮
P_{H, 1} P_{H, 2} … P_{H, W}輸出格式
輸出好的子網格之大小可能的最大值。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 6
1 1 1 1 1 2
1 2 2 2 2 2
1 2 2 3 2 3
1 2 3 2 2 3輸出:
6說明: 選取第 行與第 列所構成的大小為 的子網格,如下所示,其所有格子上的數字均為 :
. . . . . .
. 2 2 . 2 .
. 2 2 . 2 .
. . . . . .因此,該子網格為好的子網格。由於不存在更大的好的子網格,故輸出 。
❌ Unsupported block (heading_4)
輸入:
3 3
1 2 3
4 5 6
7 8 9輸出:
1❌ Unsupported block (heading_4)
輸入:
5 3
7 7 7
7 7 7
7 7 7
7 7 7
7 7 7輸出:
15064 - 地盤隆起 / Uplift(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bl
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
某地被劃分為 個區塊,由西向東數來第 個區塊(以下稱為區塊 )的海拔高度為 。
接下來會發生 次地殼變動。在第 次地殼變動中,區塊 的海拔高度會變化 。(當 時表示海拔上升 ;當 時表示海拔下降 )
從區塊 前往區塊 的不便程度定義如下:
設區塊 的海拔高度為 ,則不便程度為 。
請計算每次地殼變動後的不便程度。
數據範圍
- 所有輸入皆為整數
輸入格式
N Q
A_1 A_2 … A_N
L_1 R_1 V_1
L_2 R_2 V_2
⋮
L_Q R_Q V_Q輸出格式
輸出 行。第 行輸出第 次地殼變動結束後的不便程度。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
1 2 3
2 3 1
1 2 -1
1 3 2輸出:
3
4
4說明: - 第 次地殼變動後,各區塊由西向東的海拔依序為 ,不便程度為 。 - 第 次地殼變動後,各區塊由西向東的海拔依序為 ,不便程度為 。 - 第 次地殼變動後,各區塊由西向東的海拔依序為 ,不便程度為 。
❌ Unsupported block (heading_4)
輸入:
20 10
61 51 92 -100 -89 -65 -89 -64 -74 7 87 -2 51 -39 -50 63 -23 36 74 37
2 2 -45
6 19 82
2 9 36
7 13 71
16 20 90
18 20 -24
14 17 -78
10 11 -55
7 19 -26
20 20 -7輸出:
1164
1328
1256
1350
1440
1416
1572
1482
1430
1437065 - RGB 彩球 2 / RGB Balls 2(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bm
- 難度等級:★7
- 配分:7 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
有 顆紅色球、 顆綠色球與 顆藍色球。即使顏色相同,每顆球之間都是彼此可區分的。
現在要從這 顆球中選出 顆球,且必須同時滿足以下所有條件:
- 選出的紅色球與綠色球總數不超過 顆
- 選出的綠色球與藍色球總數不超過 顆
- 選出的藍色球與紅色球總數不超過 顆
問共有多少種選出 顆球的方法?由於答案可能非常大,請輸出答案除以 的餘數。
數據範圍
- 所有輸入皆為整數
輸入格式
R G B K
X Y Z輸出格式
輸出答案除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 1 2 5
4 2 4輸出:
2說明: 此範例測資滿足子任務 的限制。
從 顆藍色球中恰好不選其中 顆,其餘球全部選取,即可達成條件。由於不存在其他滿足條件的選法,因此答案為 種。
❌ Unsupported block (heading_4)
輸入:
65 6 12 35
30 18 35輸出:
257190020說明: 此範例測資滿足子任務 的限制。
請注意輸出答案除以 的餘數。
❌ Unsupported block (heading_4)
輸入:
23502 65936 72385 95835
72759 85735 72385輸出:
229429276說明: 此範例測資滿足子任務 的限制。
066 - 多樣數列 / Various Arrays(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bn
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
數列店的高橋君正在製作一個長度為 的數列 。數列 的第 個元素 的值,是從 以上、 以下的整數中獨立且均勻隨機選取的。
請計算如此生成的數列 的逆序數(轉倒數)的期望值。
長度為 的數列 的「逆序數」是指滿足 且 的數對 的個數。
數據範圍
- 所有輸入皆為整數
輸入格式
N
L_1 R_1
⋮
L_N R_N輸出格式
輸出答案。若輸出與標準答案的相對誤差或絕對誤差在 以下,則視為正確。
範例測資
❌ Unsupported block (heading_4)
輸入:
2
1 2
1 2輸出:
0.250000000000說明: 數列 可能的情況有以下 種:
- ,逆序數為
- ,逆序數為
- ,逆序數為
- ,逆序數為
因此,期望值為 。
❌ Unsupported block (heading_4)
輸入:
3
3 3
1 1
4 4輸出:
1.000000000000說明: 數列 唯一可能的情況為 ,該數列的逆序數為 。
❌ Unsupported block (heading_4)
輸入:
10
1 10
38 40
8 87
2 9
75 100
45 50
89 92
27 77
23 88
62 81輸出:
13.696758921226067 - 八進位轉九進位 / Base 8 to 9(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bo
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
黑板上寫著一個以 進位表示的整數 。你將進行以下操作 次:
- 將黑板上的整數轉為 進位表示,並將其中出現的數字「」改寫為「」(改寫後的數被視為以 進位表示的整數)。
請輸出進行 次操作後得到的數(以 進位表示)。
數據範圍
- 是以 進位表示的整數
- 的開頭不包含多餘的前導
- 為整數
輸入格式
N K輸出格式
輸出進行 次操作後得到的數(以 進位表示)。 此時,答案整數的開頭請勿包含多餘的前導 。
範例測資
❌ Unsupported block (heading_4)
輸入:
21 1輸出:
15說明: 以 進位表示的整數 (十進位的 ),轉換為 進位表示為 。 將其中的數字 改寫為 後得到 。
❌ Unsupported block (heading_4)
輸入:
1330 1輸出:
555說明: 以 進位表示的整數 (十進位的 ),轉換為 進位表示為 。 將其中的數字 改寫為 後得到 。
❌ Unsupported block (heading_4)
輸入:
2311640221315 15輸出:
474547068 - 相鄰成對資訊 / Paired Information(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bp
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個長度為 的整數數列 。 一開始,你對這個整數數列一無所知。
給定 個關於數列 的資訊與詢問(統稱為事件)。從頭數來第 個事件 由四個整數組成的四元組 表示,具體含義如下:
- 當 時:表示給出資訊 。此處保證 。
- 當 時:表示進行詢問「若假設 ,則 的值為何?」。 更嚴格地說,這表示詢問:在所有滿足 且同時滿足此時之前所有給出的資訊 的長度為 的整數數列 中, 的值為何?
請依序處理事件並回答各個詢問。
若在進行該詢問時,答案 無法唯一確定,請改為輸出 Ambiguous。
數據範圍
- 或
- 若 ,則
- 不會給出存在矛盾的輸入。 也就是說,對於 :若 ,則存在長度為 的整數數列 滿足所有 的 ;若 ,則存在長度為 的整數數列 同時滿足 與所有 的 。
- 所有輸入皆為整數
輸入格式
N
Q
T_1 X_1 Y_1 V_1
T_2 X_2 Y_2 V_2
⋮
T_Q X_Q Y_Q V_Q輸出格式
依序輸出各個詢問的答案。
若在該詢問當下答案無法唯一確定,請輸出 Ambiguous。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
7
0 1 2 3
1 1 2 1
1 3 4 5
0 3 4 6
1 3 4 5
0 2 3 6
1 3 1 5輸出:
2
Ambiguous
1
2說明: 各次詢問的答案如下:
- 第 次詢問():滿足 與 的數列 皆滿足 ,因此輸出為 。
- 第 次詢問():滿足 與 的數列 可以是 或 等, 的值無法唯一確定,因此輸出
Ambiguous。 - 第 次詢問():滿足 且 的數列 皆滿足 ,因此輸出為 。
- 第 次詢問():滿足 且 的數列 皆滿足 ,因此輸出為 。
❌ Unsupported block (heading_4)
輸入:
15
25
0 11 12 41
0 1 2 159
0 14 15 121
0 4 5 245
0 12 13 157
0 9 10 176
0 6 7 170
0 2 3 123
0 7 8 167
0 3 4 159
1 12 11 33
0 10 11 116
0 8 9 161
1 9 12 68
1 12 12 33
1 7 12 74
0 5 6 290
1 8 9 93
0 13 14 127
1 10 12 108
1 14 1 3
1 13 8 124
1 12 11 33
1 12 10 33
1 5 15 194輸出:
8
33
33
33
68
33
144
93
8
108
118069 - 彩色積木 2 / Colorful Blocks 2(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bq
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 個積木排成一列,由左至右依序編號為 到 。
現在考慮用 種顏色中的某一種顏色為每個積木塗色。塗色時必須滿足以下條件:
- 若 ,則積木 與積木 塗上的顏色必須不同。
- 可以有某些顏色完全沒有被使用。
請計算滿足條件的積木塗色方法共有多少種,並輸出其除以 的餘數。兩種塗色方式不同,定義為存在至少一個整數 ,使得積木 所塗的顏色不同。
數據範圍
- 所有輸入皆為整數
輸入格式
N K輸出格式
輸出滿足條件的塗色方法數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 3輸出:
6說明: 為了滿足條件,這 個積木必須塗上彼此不同的顏色。由於 ,滿足條件的塗色方法共有 種。
❌ Unsupported block (heading_4)
輸入:
10 2輸出:
0說明: 僅用 種顏色無法將 個積木塗成滿足條件的狀態。
❌ Unsupported block (heading_4)
輸入:
2021 617輸出:
53731843說明: 請注意輸出答案除以 的餘數。
070 - 發電廠選址 / Plant Planning(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_br
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
在二維平面上有 座工廠,第 座工廠位於座標 。
現在你可以在二維平面上的任意位置選擇一處建造一座發電廠。
定義發電廠的「不便程度」為發電廠到各工廠的曼哈頓距離總和。請計算不便程度的最小可能值。在本題限制下,可以證明答案必為整數。
關於曼哈頓距離
數據範圍
- 所有輸入皆為整數
輸入格式
N
X_1 Y_1
X_2 Y_2
⋮
X_N Y_N輸出格式
輸出不便程度的最小值(整數)。
範例測資
❌ Unsupported block (heading_4)
輸入:
2
-1 2
1 1輸出:
3說明: 若將發電廠建在 ,則發電廠到各工廠的曼哈頓距離如下:
- 工廠 :
- 工廠 :
此時的不便程度為 。由於不便程度不可能小於 ,因此輸出 。
❌ Unsupported block (heading_4)
輸入:
2
1 0
0 1輸出:
2說明: 若將發電廠建在 ,可達成最小不便程度 。
此外,若將發電廠建在 或 ,不便程度同樣為 。
❌ Unsupported block (heading_4)
輸入:
5
2 5
2 5
-3 4
-4 -8
6 -2輸出:
35說明: 多個工廠可能位於相同的座標上。
❌ Unsupported block (heading_4)
輸入:
4
1000000000 1000000000
-1000000000 1000000000
-1000000000 -1000000000
1000000000 -1000000000輸出:
8000000000071 - 模糊優先級 / Fuzzy Priority(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bs
- 難度等級:★7
- 配分:7 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
請找出 個滿足以下條件的 排列 。若不存在 個這樣的排列,請報告此情況。
- 對於每個 ,在排列 中 都出現在 之前。
數據範圍
- 若 ,則
- 輸入皆為整數
輸入格式
N M K
A_1 B_1
A_2 B_2
⋮
A_M B_M輸出格式
若滿足條件的排列 不足 個,請輸出 -1。
若存在,輸出應包含 行。每行請依以下格式輸出一個滿足條件的排列 :
P_1 P_2 P_3 … P_N這 個排列必須互不相同。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 2 3
1 2
3 4輸出:
1 2 3 4 5
1 3 2 4 5
1 3 5 2 4說明: 此範例測資滿足部分子任務限制。
排列 的條件為: - 在 之前 - 在 之前
必須同時滿足這 個條件。
只要是滿足此條件且互不相同的 個排列,即使輸出與範例輸出不同亦視為正確。此外,輸出這 個排列的順序不同亦視為正確。
❌ Unsupported block (heading_4)
輸入:
5 2 1
1 3
3 1輸出:
-1說明: 此範例測資滿足所有子任務限制。
不存在任何滿足條件的排列。
❌ Unsupported block (heading_4)
輸入:
10 15 10
8 4
9 4
10 2
6 2
10 6
1 3
7 4
6 8
8 1
5 6
10 9
3 7
8 3
3 9
2 3輸出:
5 10 6 2 8 1 3 7 9 4
5 10 6 2 8 1 3 9 7 4
5 10 6 8 2 1 3 7 9 4
5 10 6 8 2 1 3 9 7 4
5 10 6 8 1 2 3 7 9 4
5 10 6 8 1 2 3 9 7 4
10 5 6 2 8 1 3 7 9 4
10 5 6 2 8 1 3 9 7 4
10 5 6 8 2 1 3 7 9 4
10 5 6 8 2 1 3 9 7 4說明: 此範例測資滿足部分子任務限制。
072 - 環狀鐵路計畫 / Loop Railway Plan(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bt
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
ABC 王國以 行 列的網格表示。每個方格不是山方格就是平原方格。由上數來第 行、由左數來第 列的方格若為山方格,則 為 #;若為平原方格,則 為 .。
你想要建造一條鐵路路線。鐵路路線的路徑必須同時滿足以下所有條件:
- 條件 1:以某個方格為起點,重複移動到共享邊的相鄰方格 次(),並回到起點。
- 條件 2:在 次移動中,所到達的方格皆不相同。(起點與終點可以重合)
- 條件 3:不經過任何山方格。
請計算鐵路路線所經過方格數量的最大可能值。若不存在滿足條件的鐵路路線,請報告此情況(輸出 -1)。
數據範圍
- 為正整數
- 為
#或. - 至少存在一個 ()使得 為
.
輸入格式
H W
c_{1,1} c_{1,2} … c_{1,W}
c_{2,1} c_{2,2} … c_{2,W}
⋮
c_{H,1} c_{H,2} … c_{H,W}輸出格式
請輸出鐵路路線所經過方格數量的最大值。
若不存在滿足條件的鐵路路線,請輸出 -1。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
...
.#.
...輸出:
8說明: 例如,繞外圍一圈的鐵路路線會經過 個方格。
❌ Unsupported block (heading_4)
輸入:
1 6
......輸出:
-1說明:
由於不存在滿足條件的鐵路路線,故輸出 -1。
❌ Unsupported block (heading_4)
輸入:
4 4
....
#...
....
...#輸出:
12說明: 例如,存在一條經過 個方格的鐵路路線。
073 - 我們需要 a 與 b / We Need Both a and b(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bu
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一棵包含 個頂點的樹。樹的頂點編號為 ,第 條邊雙向連接頂點 與頂點 。
每個頂點上都寫有文字 a 或 b,頂點 上寫的文字為 。
刪除 條或更多條邊的方法共有 種。在這些方法中,求滿足「刪除邊之後,所有的連通分量都同時包含文字 a 與 b」的方法數,並輸出其除以 的餘數。
數據範圍
- 為
a或b - 給定的圖為一棵樹
輸入格式
N
c_1 c_2 … c_N
a_1 b_1
⋮
a_{N - 1} b_{N - 1}輸出格式
請輸出一行,表示答案除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
7
b a b a b b a
2 1
3 7
3 2
3 4
5 4
4 6輸出:
4說明: 滿足條件的刪邊方法有以下 種: - 不刪除任何邊 - 刪除邊 - 刪除邊 - 刪除邊 與邊
❌ Unsupported block (heading_4)
輸入:
2
a b
1 2輸出:
1說明: 無法刪除任何邊。
❌ Unsupported block (heading_4)
輸入:
22
b a b b a b b b a b a a a a b b a b b a a a
1 7
4 14
12 22
2 4
21 17
3 20
7 8
20 14
15 11
8 14
9 12
17 8
6 20
11 20
18 19
10 8
22 20
13 21
5 14
19 20
16 14輸出:
16074 - ABC 字串 2 / ABC String 2(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bv
- 難度等級:★6
- 配分:6 點
- 時間限制:1 sec / 空間限制:1024 MiB
題目描述
現在電子看板上顯示著一個由 a、b、c 組成且長度為 的字串 。
你可以依任意順序執行以下 種操作任意多次。其中「變換」是指將原本為 a 的字元變為 b,b 變為 c,c 變為 a:
- 選擇一個滿足 的索引 (),將 改為
a之後,將 進行變換。 - 選擇一個滿足 的索引 (),將 改為
b之後,將 進行變換。
請計算最多可以執行多少次操作。
數據範圍
- 是由
a、b、c組成且長度為 的字串
輸入格式
N
S輸出格式
請輸出最多可以執行的操作次數。
範例測資
❌ Unsupported block (heading_4)
輸入:
3
aba輸出:
2說明:
例如透過以下步驟,可以執行 次操作:
- 首先選擇 執行操作。此時字串 由 aba 變為 baa。
- 接著選擇 執行操作。此時字串 由 baa 變為 aaa。
❌ Unsupported block (heading_4)
輸入:
10
aaaaaaaaaa輸出:
0說明:
由於所有字元皆為 a,因此無法進行任何操作。
❌ Unsupported block (heading_4)
輸入:
5
baaca輸出:
17075 - 球與魔法 / Magic For Balls(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bw
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
對寫有整數 的球進行敲擊時,會進行以下操作:
- 若 不是質數:被敲擊的球消失,並新增一顆寫有整數 的球與一顆寫有整數 的球。其中 可以自由選擇滿足 且 的整數。
- 若 是質數:什麼事都不會發生。
此外,施展 次魔法可以同時敲擊當前所有的球。另一方面,除了施展魔法以外,沒有其他敲擊球的方法。
現在只有 顆寫有整數 的球。你想透過施展幾次魔法,使得所有球上寫的數字都變成質數。最少需要施展幾次魔法?
數據範圍
- 為整數
輸入格式
N輸出格式
請輸出最少需要施展魔法的次數。
範例測資
❌ Unsupported block (heading_4)
輸入:
42輸出:
2說明: 一開始有一顆寫有 的球。使用魔法敲擊此球,例如可以進行以下操作: - 讓寫有 的球消失,並新增寫有 的球與寫有 的球。
現在有兩顆球,分別寫有 。使用魔法敲擊這些球,會進行以下操作: - 敲擊寫有 的球什麼都不會發生。 - 讓寫有 的球消失,並新增寫有 的球與寫有 的球。
現在有三顆球,分別寫有 。因為這些數字都是質數,所以透過 次魔法即可達成目標。無法在少於 次的情況下達成目標。
❌ Unsupported block (heading_4)
輸入:
48輸出:
3說明: 例如進行適當的分解操作,可以在 次魔法後使所有球上的數字皆為質數。
❌ Unsupported block (heading_4)
輸入:
54輸出:
2❌ Unsupported block (heading_4)
輸入:
53輸出:
0說明: 一開始就是質數的情況下,無需施展魔法即已滿足條件,因此請輸出 。
076 - 切蛋糕 / Cake Cut(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bx
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個被分成 塊的圓形完整蛋糕,依順時針方向第 塊蛋糕(以下稱為塊 )的大小為 。對於 ,塊 與塊 相鄰,且塊 與塊 也相鄰。
請判定是否存在一種選取蛋糕中連續幾塊的方法,使得選取部分的大小恰好為蛋糕總大小的 (十分之一)。
數據範圍
- 輸入皆為整數
輸入格式
N
A_1 A_2 … A_N輸出格式
若存在一種選取方式使得選取部分的大小恰好為總大小的 ,請輸出 Yes;否則輸出 No。
範例測資
❌ Unsupported block (heading_4)
輸入:
10
1 1 1 1 1 1 1 1 1 1輸出:
Yes說明: 蛋糕總大小為 ,因此需要選取連續的蛋糕塊使得大小總和為 。 例如只選取塊 即可。
❌ Unsupported block (heading_4)
輸入:
3
1 1 1輸出:
No說明: 不存在任何選法使得選取部分的大小為總大小的 。
❌ Unsupported block (heading_4)
輸入:
3
1 18 1輸出:
Yes說明: 選取塊 與塊 ,選取部分的大小總和為 ,恰好是總大小 的 。 請注意塊 與塊 是相鄰的。
❌ Unsupported block (heading_4)
輸入:
4
1 9 1 9輸出:
No說明: 雖然選取塊 與塊 大小總和為 (總大小為 的 ),但它們並不連續,不能以不連續的方式選取。
077 - 平面上的飛機 / Planes on a 2D Plane(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_by
- 難度等級:★7
- 配分:7 點
- 時間限制:1.5 sec / 空間限制:1024 MiB
題目描述
在可視為 維座標平面的天空中,有 架飛機正在飛行。 對於 ,第 架飛機在時刻 位於座標 。
每架飛機都朝向方向 之一飛行。 在時刻 位於座標 且朝向方向 的飛機,在時刻 將位於:
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
- 若 ,位於座標
此外,在飛行過程中飛機不會改變方向。
你收到了管制員高橋同學的以下報告:
「在時刻 ,座標 處各有一架飛機。」
請判定是否存在與他的報告不矛盾的 架飛機飛行方向組合;若存在,請輸出一組可行的方向配置。
數據範圍
- 若 ,則
- 若 ,則
- 輸入皆為整數
輸入格式
N T
AX_1 AY_1
AX_2 AY_2
⋮
AX_N AY_N
BX_1 BY_1
BX_2 BY_2
⋮
BX_N BY_N輸出格式
若不存在與高橋同學的報告不矛盾的方向組合,請輸出 No。
若存在,請依以下格式輸出第 架飛機的方向(以空格分隔):
Yes
D_1 D_2 D_3 … D_N其中 為飛機 的飛行方向。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 2
3 3
5 5
9 2
11 2
5 5
3 3輸出:
Yes
2 6 1說明: 在時刻 時,第 架飛機位於座標 ,第 架飛機位於座標 ,第 架飛機位於座標 。
❌ Unsupported block (heading_4)
輸入:
3 2
3 3
5 5
9 2
11 1000000000
5 5
3 3輸出:
No說明: 不存在與高橋同學的報告不矛盾的方向組合。
❌ Unsupported block (heading_4)
輸入:
20 774
540130346 269080121
139837096 165633078
731188937 784167460
18996195 52176517
153153670 738204723
179733158 825294112
698198250 713974773
449248931 563096572
249863070 242694893
428066819 476630383
554127636 460973490
389988495 32320086
889782910 956212985
43905938 212030305
638141790 667879166
985957895 358743012
971007109 827787244
804625543 141347414
905270323 167192824
614855582 963943648
179733932 825294886
731188163 784166686
153154444 738205497
554128410 460973490
804626317 141348188
449249705 563096572
540129572 269079347
638142564 667878392
614855582 963944422
18996969 52177291
971007109 827788018
889782910 956213759
43906712 212031079
389987721 32319312
139836322 165633078
428067593 476631157
905271097 167192824
249862296 242694893
985958669 358742238
698199024 713975547輸出:
Yes
6 5 6 2 2 2 2 1 5 2 1 6 3 2 8 8 3 2 1 3078 - 簡易圖論問題 / Easy Graph Problem(★2)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_bz
- 難度等級:★2
- 配分:2 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個包含 個頂點與 條邊的連通簡單無向圖。圖中的頂點編號分別為 到 。 第 條邊雙向連接頂點 與 。
請輸出滿足以下條件的頂點數量:
- 恰好存在 個編號比自己小的相鄰頂點。
數據範圍
- 給定的圖為簡單圖
- 給定的圖為連通圖
- 所有輸入皆為整數
輸入格式
N M
a_1 b_1
⋮
a_{M} b_{M}輸出格式
請輸出一行,表示滿足條件的頂點數量。
範例測資
❌ Unsupported block (heading_4)
輸入:
5 5
1 2
1 3
3 2
5 2
4 2輸出:
3說明: 滿足條件的頂點有 、、 共 個: - 頂點 只有頂點 這 個比自己編號小的相鄰頂點。 - 頂點 只有頂點 這 個比自己編號小的相鄰頂點。 - 頂點 只有頂點 這 個比自己編號小的相鄰頂點。
❌ Unsupported block (heading_4)
輸入:
2 1
1 2輸出:
1說明: 滿足條件的頂點僅有 。
❌ Unsupported block (heading_4)
輸入:
7 18
7 2
1 6
5 2
1 3
7 6
5 3
5 6
5 4
1 7
2 6
3 4
5 1
4 7
4 6
5 7
3 2
4 2
1 4輸出:
0079 - 2x2 操作 / Two by Two(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ca
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個 的 維陣列 與 。你可以依任意順序執行以下 種操作任意多次:
- 選擇整數 (),將 的值各自增加 。
- 選擇整數 (),將 的值各自減少 。
請問是否可能透過執行 次或多次操作,使 與 完全一致? 若可能,請同時輸出最少的操作次數。
數據範圍
- 輸入皆為整數
輸入格式
H W
A_{1, 1} A_{1, 2} … A_{1, W}
A_{2, 1} A_{2, 2} … A_{2, W}
⋮
A_{H, 1} A_{H, 2} … A_{H, W}
B_{1, 1} B_{1, 2} … B_{1, W}
B_{2, 1} B_{2, 2} … B_{2, W}
⋮
B_{H, 1} B_{H, 2} … B_{H, W}輸出格式
若可以透過操作使 與 一致,請在第 行輸出 Yes,第 行輸出最少操作次數。
若無法使 與 一致,請輸出 No。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 3
0 0 0
0 0 0
0 0 0
1 1 0
1 1 0
0 0 0輸出:
Yes
1說明: 選擇 執行增加 的操作,即可使 與 一致。
❌ Unsupported block (heading_4)
輸入:
3 3
0 0 0
0 0 0
0 0 0
0 0 0
0 1 0
0 0 0輸出:
No說明: 無論如何操作都無法使 與 一致。
❌ Unsupported block (heading_4)
輸入:
5 5
6 17 18 29 22
39 50 25 39 25
34 34 8 25 17
28 48 25 47 42
27 47 24 32 28
4 6 3 29 28
48 50 21 48 29
44 44 19 47 28
4 49 46 29 28
4 49 45 1 1輸出:
Yes
140080 - 共享位元 / Let’s Share Bit(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cb
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 個非負整數 。
在所有滿足 的整數 中,請計算對所有 都滿足以下條件的 有多少個:
- 與 的按位與(Bitwise )不為 。
❌ Unsupported block (heading_4)
非負整數 的按位與(Bitwise ) 定義如下:
- 將 以二進位表示時,其 位上的數字在 的二進位表示中 位皆為 時為 ,否則為 。
例如 (以二進位表示:)。
數據範圍
- 輸入皆為整數
輸入格式
N D
A_1 A_2 … A_N輸出格式
請輸出滿足所有 個條件的整數 的個數。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 3
1 3 4 5輸出:
2說明: 以上小於 的整數 分別滿足以下條件: - :不滿足任何條件。 - :滿足第 個條件,但不滿足第 個條件。 - :滿足第 個條件,但不滿足第 個條件。 - :滿足第 個條件,但不滿足第 個條件。 - :滿足第 個條件,但不滿足第 個條件。 - :滿足所有條件。 - :滿足第 個條件,但不滿足第 個條件。 - :滿足所有條件。
因此,答案為 。
❌ Unsupported block (heading_4)
輸入:
5 21
1050624 32772 493952 144 869120輸出:
869120❌ Unsupported block (heading_4)
輸入:
20 60
216181578206878016 81348488767472704 26388280246272 281543729742896 72127981178847488 2199108462600 585610888171487234 22027813536776 567459673280576 146648462866649600 144484898860704776 576471786208755714 4398621196432 144141576657960976 81069330992726040 360851057582278674 17859112 11570646360064 144115206396936193 1702052723957760輸出:
977902973481140224說明: 輸入或輸出的數值可能會超出 位元整數的範圍。
081 - 友好團體 / Friendly Group(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cc
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
典型高中有 名學生,每位學生的編號為 到 。學生 的身高為 ,體重為 。
從這 名學生中選出 人以上組成一個隊伍,使得隊伍滿足以下所有條件:
- 隊伍中任意兩名學生的身高之差的絕對值皆不超過 。
- 隊伍中任意兩名學生的體重之差的絕對值皆不超過 。
請計算隊伍人數可能的最大值。
數據範圍
- 所有輸入皆為整數
輸入格式
N K
A_1 B_1
A_2 B_2
⋮
A_N B_N輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 4
1 1
2 5
7 4輸出:
2說明: 由 且 ,可以選擇學生 與學生 組成 人的隊伍。
由於無法組成超過 人的隊伍,故輸出 。
❌ Unsupported block (heading_4)
輸入:
2 123
4 5
678 901輸出:
1說明: 有時可能只能組成 人的隊伍。
❌ Unsupported block (heading_4)
輸入:
7 10
20 20
20 20
20 30
20 40
30 20
30 30
40 20輸出:
5說明: 可以選擇學生 共 人組成隊伍。
082 - 數數字 / Counting Numbers(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cd
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有一個什麼都沒寫的黑板。 依序對 進行以下操作:
- 在黑板上寫下整數 共 次。
在所有操作結束後,請計算黑板上所寫的字元總個數除以 的餘數。
請注意,計算的是字元的數量而不是整數的個數。例如,整數 會被計為 個字元。
數據範圍
- 所有輸入皆為整數
輸入格式
L R輸出格式
在所有操作結束後,請輸出黑板上所寫的字元總個數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 5輸出:
12說明: 在所有操作結束後,黑板上寫有以下整數:
因此,寫下的字元總個數為 。
❌ Unsupported block (heading_4)
輸入:
98 100輸出:
694說明: 在所有操作結束後,黑板上寫有 個 、 個 以及 個 。
因此,寫下的字元總個數為 。
❌ Unsupported block (heading_4)
輸入:
1001 869120輸出:
59367733說明: 請輸出除以 的餘數。
❌ Unsupported block (heading_4)
輸入:
381453331666495446 746254773042091083輸出:
584127830說明: 輸入可能無法以 位元整數型態容納。
083 - 彩色圖 / Colorful Graph(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ce
- 難度等級:★6
- 配分:6 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
給定一個有 個頂點、 條邊的連通簡單無向圖。圖中的頂點編號分別為 到 。 第 條邊雙向連接頂點 與 。
共有 種顏色,每種顏色的編號為 到 。 最初,所有頂點都被塗上顏色 。
接下來給定 個以下形式的查詢,請依序處理:
- 給定整數 。輸出頂點 目前的顏色編號,並將頂點 以及與其相鄰的所有頂點重新塗上顏色 。
數據範圍
- 給定的圖為簡單圖
- 給定的圖為連通圖
- 所有輸入皆為整數
輸入格式
N M
a_1 b_1
⋮
a_M b_M
Q
x_1 y_1
⋮
x_Q y_Q輸出格式
請依序輸出各查詢的答案,共 行。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 4
1 2
1 3
1 4
2 3
5
4 2
3 3
2 4
4 5
1 6輸出:
1
1
3
2
5說明: 各查詢的處理過程如下:
- 第 個查詢:輸出頂點 的顏色編號 ,並將頂點 的顏色修改為 。
- 第 個查詢:輸出頂點 的顏色編號 ,並將頂點 的顏色修改為 。
- 第 個查詢:輸出頂點 的顏色編號 ,並將頂點 的顏色修改為 。
- 第 個查詢:輸出頂點 的顏色編號 ,並將頂點 的顏色修改為 。
- 第 個查詢:輸出頂點 的顏色編號 ,並將頂點 的顏色修改為 。
❌ Unsupported block (heading_4)
輸入:
10 20
1 3
7 8
5 8
2 3
7 10
6 7
4 7
9 5
6 5
2 9
4 2
5 7
3 10
4 8
1 8
10 8
5 3
9 1
7 3
2 1
10
3 5
2 2
8 9
5 3
8 2
3 9
7 1
7 1
8 4
6 8輸出:
1
5
1
9
3
3
9
1
1
1084 - 包含兩種字元 / There are two types of characters(★3)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cf
- 難度等級:★3
- 配分:3 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個由 o 和 x 組成且長度為 的字串 。
請計算滿足以下所有條件的整數對 的個數:
- 在 的第 個字元到第 個字元的區間中,同時包含
o和x。
數據範圍
- 是由
o、x組成長度為 的字串
輸入格式
N
S輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
4
ooxo輸出:
5說明: 共有 這 組滿足條件。
❌ Unsupported block (heading_4)
輸入:
5
oxoxo輸出:
10❌ Unsupported block (heading_4)
輸入:
5
ooooo輸出:
0說明: 無論選擇哪一組 都不滿足條件。
❌ Unsupported block (heading_4)
輸入:
7
xxoooxx輸出:
16085 - 乘法 085 / Multiplication 085(★4)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cg
- 難度等級:★4
- 配分:4 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
給定一個正整數 。請計算滿足 的正整數三元組 共有多少組。
數據範圍
- 所有輸入皆為整數
輸入格式
K輸出格式
請輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
42輸出:
5說明: 有以下 種表示為 個正整數之積的方法:
- 令 []
- 令 []
- 令 []
- 令 []
- 令 []
❌ Unsupported block (heading_4)
輸入:
7輸出:
1說明: 有以下 種表示為 個正整數之積的方法:
- 令 []
❌ Unsupported block (heading_4)
輸入:
192輸出:
16086 - Snuke 喜歡的數列 / Snuke’s Favorite Arrays(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ch
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
Snuke 喜歡同時滿足以下 個條件且長度為 的數列 :
- 條件 1:對所有 ,皆滿足 (此處 代表按位元或運算)
- 條件 2:對所有 ,皆滿足
請輸出 Snuke 喜歡的數列 的個數除以 的餘數。
數據範圍
- 所有輸入皆為整數
輸入格式
N Q
x_1 y_1 z_1 w_1
⋮
x_Q y_Q z_Q w_Q輸出格式
請輸出 Snuke 喜歡的數列 的個數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 2
1 2 3 50
2 3 4 45輸出:
13說明: 例如 是 Snuke 喜歡的數列之一。可以確認它滿足所有給定的條件:
- 數列 的每個元素值皆在 以上且小於
❌ Unsupported block (heading_4)
輸入:
8 2
2 3 6 1152886174205865983
1 2 8 1116611213275394047輸出:
395781543說明: 請輸出除以 的餘數。
087 - Chokudai 的要求 / Chokudai’s Demand(★5)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ci
- 難度等級:★5
- 配分:5 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
AtCoder 國有 座城鎮,編號分別為 。任意兩座城鎮之間都有一條道路,支付交通費(單位:Snuke)即可從一座城鎮移動到另一座城鎮。
AtCoder 國的大臣在決定一個正整數 之後,將每對 之間的交通費設定如下:
- 當 時:連接城鎮 與城鎮 的道路交通費為 Snuke
- 當 時:連接城鎮 與城鎮 的道路交通費為 Snuke
此外,根據 Chokudai 國王的要求,必須滿足以下條件:
透過適當選擇路徑,使得從城鎮 到城鎮 的總交通費在 Snuke 以下即可到達的點對 恰好有 對。
請問有多少種 的取法能滿足 Chokudai 國王的要求?若有無限多種,請回報此情況。
數據範圍
- 若 ,則 或
- 若 ,則
- 所有輸入皆為整數
輸入格式
N P K
A_{1,1} … A_{1,N}
⋮
A_{N,1} … A_{N,N}輸出格式
若滿足 Chokudai 國王要求的正整數 的個數為有限個,請輸出其數量;若為無限多個,請輸出 Infinity。
範例測資
❌ Unsupported block (heading_4)
輸入:
3 4 2
0 3 -1
3 0 5
-1 5 0輸出:
3說明: 例如取 時,在 Snuke 以下即可到達的城鎮對數恰好為 對,滿足 Chokudai 國王的要求:
- 從城鎮 到城鎮 可在 Snuke 以下到達
- 從城鎮 到城鎮 可在 Snuke 以下到達
- 從城鎮 到城鎮 無法在 Snuke 以下到達
另外,當 時滿足 Chokudai 國王的要求,其他情況則不滿足,因此答案為 。
❌ Unsupported block (heading_4)
輸入:
3 10 2
0 -1 10
-1 0 1
10 1 0輸出:
Infinity說明:
對所有 的正整數 ,皆滿足 Chokudai 國王的要求。因此存在無限多個,應輸出 Infinity。
❌ Unsupported block (heading_4)
輸入:
13 777 77
0 425 886 764 736 -1 692 660 -1 316 424 490 423
425 0 -1 473 -1 311 -1 -1 903 941 386 521 486
886 -1 0 605 519 473 775 467 677 769 690 483 501
764 473 605 0 424 454 474 408 421 530 756 568 685
736 -1 519 424 0 -1 804 598 911 731 837 459 610
-1 311 473 454 -1 0 479 613 880 -1 393 875 334
692 -1 775 474 804 479 0 579 -1 -1 575 985 603
660 -1 467 408 598 613 579 0 456 378 887 -1 372
-1 903 677 421 911 880 -1 456 0 859 701 476 370
316 941 769 530 731 -1 -1 378 859 0 800 870 740
424 386 690 756 837 393 575 887 701 800 0 -1 304
490 521 483 568 459 875 985 -1 476 870 -1 0 716
423 486 501 685 610 334 603 372 370 740 304 716 0輸出:
42088 - 異曲同工 / Similar but Different Ways(★6)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cj
- 難度等級:★6
- 配分:6 點
- 時間限制:2 sec / 空間限制:1024 MiB
題目描述
有 張卡片,每張卡片的編號分別為 到 。卡片 上寫有一個正整數 。 E869120 與 square1001 各自從這些卡片中選出了 張以上的卡片。 已知兩人的選卡方式滿足以下所有條件:
- 條件 1:E869120 選取的卡片上整數總和,與 square1001 選取的卡片上整數總和相等。
- 條件 2:對於每個 ,沒有人同時選取卡片 與卡片 。
- 條件 3:兩人選取的卡片集合不相同。
請輸出其中一種可能的卡片選法。但請注意:可能存在被 E869120 與 square1001 兩人都選取的卡片。
數據範圍
- 若 ,則
- 所有輸入皆為整數
- 保證存在滿足條件的選法
輸入格式
N Q
A_1 A_2 … A_N
X_1 Y_1
X_2 Y_2
⋮
X_Q Y_Q輸出格式
若 E869120 選取的卡片為 ,square1001 選取的卡片為 ,請依照以下格式輸出 行:
x
B_1 B_2 … B_x
y
C_1 C_2 … C_y範例測資
❌ Unsupported block (heading_4)
輸入:
5 2
3 1 3 2 3
1 2
1 4輸出:
4
2 3 4 5
3
1 3 5說明:,兩人所選卡片上的整數總和相等。 由於其他條件也全部滿足,故此輸出為正確答案。 除此之外,例如以下輸出也被視為正確答案:
2
1 3
2
1 5❌ Unsupported block (heading_4)
輸入:
10 10
2 5 7 8 11 10 1 88 86 50
1 2
1 3
1 4
1 5
1 6
5 10
6 10
2 3
9 10
7 8輸出:
2
6 7
1
5089 - 分割與逆序數 / Partitions and Inversions(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_ck
- 難度等級:★7
- 配分:7 點
- 時間限制:3 sec / 空間限制:1024 MiB
題目描述
給定一個長度為 的正整數數列 。
將這個數列分割為 個以上非空的連續區間的方法共有 種,請計算在這些分割方法中滿足以下條件的方法數:
- 對於所有分割出的區間,該區間內的氣泡排序交換次數皆不超過 。
由於答案可能非常大,請輸出除以 的餘數。
所謂氣泡排序的交換次數定義如下:將「若 則交換這兩個數」的操作依序對 執行一次稱為「一次掃描」。已知重複進行 次掃描即可將數列升序排序。此處將套用該演算法時進行整數交換的總次數定義為氣泡排序的交換次數。例如當 時,氣泡排序的交換次數為 。
數據範圍
- 所有輸入皆為整數
輸入格式
N K
A_1 A_2 A_3 … A_N輸出格式
請在 行中輸出滿足題目條件的分割方法數除以 的餘數。
範例測資
❌ Unsupported block (heading_4)
輸入:
4 0
3 1 4 2輸出:
2說明: 以及 這 種分割方法滿足條件。
❌ Unsupported block (heading_4)
輸入:
7 2
5 3 7 2 1 2 3輸出:
44❌ Unsupported block (heading_4)
輸入:
7 0
7 6 5 4 3 2 1輸出:
1090 - Typical90 的最後一道題 / Tenkei90’s Last Problem(★7)
- 題目連結:https://atcoder.jp/contests/typical90/tasks/typical90_cl
- 難度等級:★7
- 配分:10 點
- 時間限制:7 sec / 空間限制:1024 MiB
題目描述
請計算滿足以下條件且長度為 的非負整數數列 的個數除以 的餘數:
- 對於任意滿足 的整數對 ,皆成立 。
數據範圍
- 所有輸入皆為整數
輸入格式
N K輸出格式
請在 行中輸出答案。
範例測資
❌ Unsupported block (heading_4)
輸入:
2 2輸出:
8說明: 滿足條件。
在 時,,因此不滿足條件。
❌ Unsupported block (heading_4)
輸入:
17 29輸出:
263173793說明: 此輸入滿足子任務 4, 5, 6, 7 的限制。
❌ Unsupported block (heading_4)
輸入:
2718 2818輸出:
393799986說明: 此輸入滿足子任務 5, 6, 7 的限制。
❌ Unsupported block (heading_4)
輸入:
28593 1輸出:
365728740說明: 此輸入滿足子任務 1, 2, 6, 7 的限制。
❌ Unsupported block (heading_4)
輸入:
869120 1001輸出:
967393022說明: 此輸入滿足子任務 7 的限制。