NPSC2022心得


成績

solve 名次
初賽 5題/7題 第六名
複賽 5題/8題 第三名

初賽

初賽是在學校電腦教室打的,一開始我就跟臨末分開從頭尾開始往中間讀。

而臨末看了測資之後跟我說D看起來很簡單,於是我就先開掉了。

  • (8 min.) pD AC(+0)

    我一開始把他想得太難,浪費了一點時間,實際上實作不用一分鐘,臨末說他會G了,於是他去開G我跑去看其他題。

  • (? min.) pG WA(-1)

    臨末卡了小bug,看到記分板已經有隊伍首殺了於是我就相信他應該會過。

  • (23 min.) pG AC(+1)

    臨末處理完了G,而同時我猜B可以hash於是跑去開B。

  • (50 min.) pB AC(+0)

    B我就hash砸了下去,結果回頭看計分板發現好多隊伍都已經AC了,然後又再看了範圍,發現可以爆搜,算了。
    同時我看完F後,跟5x55討論了一下,然後就讓他去找規律了。
    臨末說他看懂C了,於是他跑去弄了C。

  • (? min.) pF WA(-1)

    5x55跟我說他感覺知道結論了,把範測特判一下,然後幫他弄個模逆元送上去後WA。
    臨末找到了他自己C的反例,他又不會了,於是我跟臨末說E看起來是在某種特殊的圖上找最短路,討論後沒觀察到特殊性質和沒什麼想法所以先跳過。

  • (140 min.) pF AC(+1)

    結果只是有一個地方忘記換行,浪費了我們快半小時的時間。
    做完F後5x55就跑去搶限量高鐵便當了…好喔…
    臨末提出了自己對A的想法,概念基本上也就是分塊的一種,而我們就開始爭吵到底對不對,根據他提出的想法,算起來會超過題目限制一點點。
    經過一番爭吵後我們決定先寫寫看再說。

  • (? min.) pA WA(-1)

    收到WA令我們感到疑惑,因為如果是我們做法不行,預期上我們應該會得到TLE才對。

  • (? min.) pA WA(-2)

    改掉了小bug後還是WA,於是就繼續檢查還有沒有其他bug。

  • (214 min.) pA AC(+2)

    雖然我們不知道為什麼這樣會AC啦,但反正AC了就先算了。
    這時而我對C有著一點想法,於是就開始刻。
    剩下不到30分鐘,我跟臨末討論完後發現C這題就我們的理解好像有點不太一樣,結果也沒時間弄這題了。

為什麼大家都會C阿?雖然沒做出C覺得蠻可惜的,但以結果來說我覺得已經有點超出意料之中了?

決賽

看起來是沒有什麼可以很快開完的題目,看了一輪後臨末說他想開D,就把電腦搶走了。

  • (52 min.) pD AC(+)

    搶到了首殺,臨末在慢慢debug的同時我有想要開H,但他不把電腦給我,於是他一AC之後我就接手弄H。

  • (? min.) pH WA(-1)

    寫了不到1分鐘後上傳,我自己覺得我的H結論應該是對了,但不知道為什麼WA。

  • (? min.) pH WA(-2)

    我在某個case中換了另一種寫法,送上去後發現還是WA。

  • (? min.) pH WA(-3)

    臨末不聽我講的東西,硬是要自己寫寫看,於是送了個完全不對的東西上去。

  • (79 min.) pH AC(+3)

    最後發現我一開始的結論是對的,只是沒人有注意到題目要求正整數不能有0。
    我跑去跟5x55討論A在幹嘛,然後發現了計算 $N!$ 時, $N$ 雖然到 $10^{18}$ 量級,但 $N>>M$ 時答案一定會是 0。

  • (? min.) pA WA(-1)

    m好像不是質數不能用模逆元。

  • (? min.) pA AC(+1)

    觀察一下發現了他的梗,如果 $N>2M$ 答案就是0,其餘暴力做前綴跟後綴就可。
    我在這時看出了F的結論,只要抓一排一列,R跟C分開看就行了。

  • (? min.) pF RE(-1)

    我被Code::Blocks搞,溢位沒有發現。

  • (? min.) pF RE(-2)

    改了一下後還是不知道錯哪裡,而在稍早我們就已經稍微討論過E的做法了,於是就決定給臨末先刻E。

  • (? min.) pE WA(-1)

    臨末錯了之後就印出來debug,換我繼續搞F。

  • (? min.) pF RE(-3)

    我換了一個寫法,結果還是被搞。

  • (? min.) pF RE(-4)

    我對差分後的序列二分搜所有是0的位置,並且每次移除後使他前面的數字-1,後面的數字+1,感覺上應該是對的,但不知道細節出了什麼問題。

  • (? min.) pE WA(-2)

    臨末忘記clear了,但改完還是WA。

  • (237 min.) pE AC(+2)

    臨末不小心輸出了一條長度為4的鏈,改完之後就過了。

  • (265 min.) pF AC(+4)

    我跟臨末講做法換他寫寫看,他換了個雙指標的做法就過了。

心得

去年有進前25但取消決賽,今年終於比到了,但也因為是第一次跟臨末組隊,一台電腦讓我的debug能力低落,加上事前沒有協調好導致我一直在跟臨末搶電腦用,也是導致我們penalty炸掉的最主要原因,希望之後的ISSC、Hp CodeWars、YTP之類的團體賽不要再這樣了。

而這次競賽有幾個Fun Fact:

  • 決賽pE跟延平校內賽很像,感謝kenkenken讓我們事前看過類似題。
  • 我們跟第四名penalty只差了4分鐘,很驚險。
  • 我們的指導老師有事情先去教會了,沒有留下來跟我們拍照。
  • 似乎突破了板中魔咒(?)拿到了有數字的名次。
  • 搶到首殺的兩題都是臨末占著電腦debug不讓我寫其他題才搶到的。

而第三名的獎品是每人一台Samsung的8.7吋平板,感覺一整天下來沒吃午餐好像也值得了?