2024 ICPC Asia Taichung Regional Programming Contest

  • 連結:https://codeforces.com/contest/2041
  • 時間:2024 Nov 17, 09:30-14:30
  • 團隊:NYCU_MyGO!!! (SorahISA, ub33, nella17)
  • 成績:10 / 14, Penalty 874, dirt 9% ( A B C D E F G H I J K L M N )

A. The Bento Box Adventure

Tags: N/A

輸入四個 之間的相異正整數 ,請判斷 哪個數字沒出現過

輸出 即可。

B. Bowling Frame

Tags: N/A

個白色瓶子跟 個黑色瓶子。你要排成 排,滿足第 排有 個相同顏色的瓶子,請求出 的最大值。

  • 測資數量

待補

C. Cube

Tags: bitmask dp

找到三個 的排列 使 最大。

輸出該最大值就好。

待補

D. Drunken Maze

Tags: bfs

給定一個 的矩陣,其中恰有一個起點跟一個終點,且有些位置是不能行走的牆壁。你每次可以朝著四方位相鄰的格子移動一步,但是你不能連續四步走同樣的方向,請求出起點到終點的最短路徑長度(不存在則輸出 )。

  • 、邊界都是牆壁

一樣用 BFS 紀錄最短路即可,但狀態要多兩個維度紀錄走了哪個方向(大小為 )跟走了幾步(大小為 )。

  • 代表抵達 且此前 步的方向都是 的最短路徑長度。

只要從 queue 裡面 pop 出 就能直接輸出答案。

時間複雜度:

E. Beautiful Array

Tags: N/A

請構造一個長度介於 、數值界於 的整數陣列滿足其平均值為 且中位數為

輸出 即可。

F. Segmentation Folds

Tags: top-down dp, prime sieve

有一個區間 跟兩種摺疊操作

  • :選擇最大的 滿足 是質數,並將區間縮小為
  • :選擇最小的 滿足 是質數,並將區間縮小為

請輸出有幾種摺疊操作的序列可以使最後的區間長度最小。請輸出答案模 的值。

  • 測資數量

觀察到新的端點 乘以 之後是質數,於是問題可以被變化為以下模樣:

  • 初始區間是
  • :選擇 的最大質數當作新的
  • :選擇 的最小質數當作新的

於是可以先篩出區間 內的質數。由於每個合數 必定有一個 的質因數,所以透過預處理 以下的質數再對區間進行篩選(就跟一般質數篩很像,除了左界要調整到第一個 的倍數),就能在 時間篩出區間內所有質數。

考慮直接對其進行 top-down 的 DP。質數數量每一 fold 大約會變成一半,於是複雜度大約是

還不會好好證明複雜度,待補。

G. Grid Game

Tags: vbcc, implementation

有一個 的白色棋盤,其中有 個垂直的長條被塗成黑色的,保證白色的區塊四方位連通。請求出有多少個位置滿足該位置被塗黑之後白色的區塊不再四方位連通。

  • 測資數量

假設所有格子都被建出來,那麼直接在上面找割點就是答案了。不過本題的格子數量太多,所以要想辦法減少重要點的數量。

待補

H. Sheet Music

Tags: math

定義兩個長度皆為 個序列 本質相同,若且惟若對所有 皆有以下其中一種情況成立:

請問有多少個本質不同、長度為 、且每個元素都是 之間的正整數序列?

請輸出答案模

先假設沒有 的限制,那麼答案就是

再假設沒有 的狀況,那麼合法的序列就是所有沒有連續 的序列,這個序列的數量可以透過 DP 求得。

初始狀態為 、目標答案就是 ,可以用前綴和 計算。

現在考慮多出 。顯然 可以放在任何地方,所以如果有 ,那麼答案就是

時間複雜度:

I. Auto Complete

Tags: trie

meow

  • meow

待補

J. Bottle Arrangement

Tags:

給定 ,你可以將 的若干位置減一並將整個 重新排序,使得

  • 是 bitonic sequence)
  • for all

請輸出最少要對多少位置減一,如果全部都減一仍不可能達成,則輸出

  • 全部元素皆相異

待補

K. Trophic Balance Species

Tags:

給定一張簡單有向圖,定義一個集合 是獨立集若且唯若 中的點兩兩不可達。

定義 是從點 出發可以抵達的點的數量, 是可以抵達點 的點的數量。請求出 所有

  • 、最大獨立集大小

待補

L. Building Castle

Tags:

給定一個凸多邊形 ,請找到一個 旋轉對稱的凸多邊形 使得 (對稱差)的面積最小。

輸出該對稱差的面積即可。

  • 、座標皆是整數、沒有三點共線、誤差容許

待補

M. Selection Sort

Tags: N/A

給你一個長度為 的序列 ,你可以對前綴跟後綴分別各做至多一次排序(哪個先都可以,也可以不做),對 個元素排序的 cost 是 ,請求出最小的 cost 使陣列排好序。

首先可以把 離散化到 ,相同數字就以位置來排序。

先做前綴跟先做後綴的兩種狀況需要分開討論,不過先做後綴再做前綴剛好相當於對 先做前綴再做後綴。以下只考慮先做前綴的情況。

假設想要一次排好 數字 ,那麼前綴操作就要做到 位置,而因為 並沒有保證排好,後綴就要從 位置 開始排序來把數字 移到對的位置上。

不過想排好數字 不一定要做到 的位置。舉例來說,如果 ,那麼就只要排到 也能保證排好 的數字。

  • 想排好數字 可以只對前綴 排序,但想排好數字 就需要對前綴 排序。

實作上(submission)可以在由小到大枚舉 時用另一個變數紀錄當前結尾有多少數字滿足前綴 最大值是自己且自己也在正確的位置上。

時間複雜度:一開始需要 離散化,計算過程只要

N. Railway Construction

Tags:

有一張 個點的圖,其中有 條邊 被丟掉了,沒被丟掉的邊 的 cost 是

請對 求出:不使用點 的情況下的最小生成樹 cost,無解則輸出

待補