Try   HackMD

2024/1/7 TOI海選

報名動機

其實我有報APCS在同一天,只是APCS的考場在南大(沒搶到成大的),而且我覺得我目前的實力還不到可以考APCS (菜鳥) ,所以就來考TOI海選
UPD : 結果4月24號報名6月的APCS因為我缺考所以不能報名 然後成大考場瞬間被搶光:(

考試心得

這次考的分數是 300/300 , 所以是順利進入初賽

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

其實當天我沒帶筆過去,太緊張了,最後還是跟旁邊的同學借的(謝謝謝謝謝)
一開始在調設備的時候連code blocks怎麼重新命名檔案都不會
差點出事 最後也是問隔壁的同學好丟臉
我覺得整體pB、pC的難度都很高,不過考coding就是在不斷突破自己,而且又不像APCS難度那麼高,覺得這次的TOI海選是報對了!
很多人破台害我很緊張

附上一個人權證明

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

題目(總共三題)

程式碼的部分我沒存所以就不放全部了

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • pA :

    題目 :

    給定

    相對應之二進制
    將會以1 0 0 1形式輸入
    所以是4個char的格式
    有k代表多組測資
    接著是判斷並輸出對應的字母

    解題思路 :

    if else if else if else 暴力XD

    部分程式碼(還記得的部分XD) :

    ​​​​string a = "0000"; //用字串解
    ​​​​for(char &c : a) {
    ​​​​    cin >> c; // '1' '0' '1' '1' -> "1001"
    ​​​​}
    

    解題心得 :

    簡單的一百分入手!
    當初一開始拿到題目的時候我是打算用switch去解
    但是發現switch只能解char 跟 數字
    就直接if else解了 第一次考很緊張

  • pB :

    題目 :

    全奇數 : 全部位數為奇數
    給定一個數字(

    n<=1018)
    a = |比n大的最小全奇數 - n|
    b = |比n小的最大全奇數 - n|
    輸出max(a,b)

    解題思路 :

    題目看起來很簡單 但它原題目字數很多
    分析全奇數的規則
    會發現求a只要把n的第一個偶數(從最大位數往下找)+1
    然後將剩下來的位數全改成1
    b會變成-1
    只是要注意的是 b的偶數位假如==0的話前方數字也要做修改

    解題心得 :

    一開始看到字數就被嚇到了
    然後還以為是要把全部偶數+1 AND -1
    所以範例測資錯了就跳去寫pC了
    到後面剩下pB才慢慢地寫掉
    我覺得這題最難的的地方就是在於b的那個==0的特殊情況
    不然其它的部分都還好

    2024 6月UPD : 解了好多題回來看,這題好像是轉五進制就可以知道全奇數了

  • pC :

    題目 :

    給一個

    k 值 再輸入
    s
    字串
    s
    字串中連續
    k
    次重複(小寫、大寫 需要穿插)的子字串最大長度
    Example : BaBaBB
    前面的BaBaB符合要求 所以ans = 5

    解題思路 :

    一開始先設定第一個字元的狀態islower(s[i])
    然後這邊我有犯一個錯誤 我還以為islower()會回傳bool值

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    所以卡很久
    然後再用算經過多少符合規則的字元
    假如遇到不符合規則的直接break
    對 我太緊張了 沒想到最優解
    然後開一個for(n次)的迴圈帶入上述的判斷規則函數
    取最大值
    最後就是O(n^2)的解QQ

    解題心得 :

    TOI海選範例好弱
    本來寫出O(N^2)的解就覺得要修一下了
    結果放上去就 AC了 (;´д`)ゞ