台中區資訊(11/16)在台中一中比,題目照慣例由彰師大準備
值得一提的是今年是台中區第一次用 Online Judge,之前都是人肉 Judge,測資也因此不能太大
彰師大用的是 IOI 用過的 CMS,架在 Ubuntu 上,我問他們是 \(32\) 還是 \(64\) 位元卻沒回答我 = =
然後編譯器是 gcc,編 C++ 的參數有 -std=c++11 ,真令人感動
有一種經歷時代變遷的感覺啊(茶

這次上機有 \(6\) 題,每題 \(4\) 筆測資,每筆 \(25\) 分。
雖然改用電腦 Judge 了 \(n\) 還是很小,很好騙分。

以下題目是我記得的部份,可能有誤。
測資是我胡亂生的,可能有誤。
測資範圍大多不記得惹,反正都很小(?)。

  1. 給一個英文字母字串 \(S\) 跟一個英文字母 \(C\),求每一個在 \(S\) 中的 \(C\) 距離上一個多遠(不分大小寫)。

  2. 給 \(n\) 個只由大寫英文組成的字串 \(S_1, S_2, \cdots, S_n \),任兩個字串至少有一個相同的字母,你可以用任何順序排列這些字串,兩個相鄰字串要以他們共同的至少一個字母對齊,請輸出最寬的排列方式,若寬度一樣,則輸出字串編號排列字典序最大者,輸出時每一個字串儘量往前一個的右邊對齊。
    \( (2 \le n \le 10, 1 \le i \le n, 1 \le \left| S_i \right| \le 100) \)

    example 1:

    2
    PR
    PMDRT
    

    AC 的輸出:

    PMDRT
      PR
    

    WA 的輸出:因為 \(PR\) 可以往更右邊對齊

    PMDRT
    PR
    

    example 2:

    4
    PMDRT
    DDC
    CIRC
    IRC
    

    AC 的輸出:字串編號排列\( = (4,3,2,1)\)

      IRC
        CIRC
      DDC
    PMDRT
    

    WA 的輸出:字串編號排列\( = (1,2,3,4) < (4,3,2,1)\)

    PMDRT
      DDC
        CIRC
         IRC
    
  3. 每筆測資有 \(n\) 個問題,每個問題會給你一個正整數 \(k\),請你照字典序輸出所有符合條件的\( a,b,c,d \)。
    \((a,b,c,d \in \mathbb N, a \le b \le c \le d, a^2 + b^2 + c^2 + d^2 = 2^k) \)
    \( (1 \le n \le 10, k \le 20) \)

  4. 有 \(n\) 個人在排隊買東西還是什麼的,第 \(i\) 個人出現的時間點是 \(q_i\),店家服務他要花的時間是 \(s_i\),店家一次只能服務一個人,正在被服務的人不算在隊伍裡,求最多同時有多少人在隊伍裡。(輸入是照 \(q\) 遞增排序的。)

  5. 現在有一種新的加密方法,可以加密一個只由英文字母跟空格組成的句子,步驟如下。

    1. 對於句子裡的每個單字,第一個跟最後一個字母不能動,中間的字母的順序可以隨意打亂。
    2. 把句子裡的所有空格移除。

    給你一個加密過的句子 \(S\) 跟一個單字的集合 \(P\),裡面有 \(n\) 個字串,第 \(i\) 個是 \( P_i \),請你用 \(P\) 裡的元素把 \(S\) 還原,每個元素不限使用次數。
    如果 \(S\) 不能還原請輸出 \(-1\)。
    如果能還原且只有一種還原方法,請輸出還原後的句子。
    如果有多種還原法,請輸出 \(1\)。
    \( (1 \le \left| S \right| \le 1000, 1 \le n \le 100, 1 \le i \le n, \left| P_i \right| \le 100) \)

  6. 給兩個字串 \(A, B\),求有多少個\(A\)的子字串跟\(B\)相等, 其中\(B\)皆為 \(XYX\) 的型式,\(X\) 跟 \(Y\) 是兩個可以相同的字母, 若\(B\)不符合格式請輸出 \(-1\)。