「閒話」NOIP 集訓

Aqr_Rn發表於2024-11-01

10.31

因為明天是 11.1,所以從今天開始寫

上午

T1 沒看讓輸出啥所以一眼會了求所有 j

看了輸出之後,額······

誒,其實也對啊,直接根據每個 j 求出的 i 區間查分一下就好了,調和級數的複雜度

20 min 打完了,本來以為有些 conercase 要調一會,但直接過了所有樣例,爽!!

後記:發現提交時間早於首 A,但資料範圍看小了一倍,RE 成 70 pts 痛失首 A

看了一小時 T2 會了 \(n \log 值域\) 思路,覺得不好打

去看 T3,因為前幾天的【小 w 的代數】 寫的就是線段樹最佳化有環樹上換根 dp,見這裡

和 T3 思路在一個方向,所以很快 T3 的思路也差不多會了,但顯然比 T2 麻煩很多,(當時調了兩天沒給我噁心死)

於是回去打 T2,為了保險,先打了 10 pts 純暴力,然後四十分鐘左右打出來但沒調出來就結束了

賽後去找 CTH 和 lxyt 說了下思路,讓他們幫忙驗證了一下,感覺沒問題

下午

於是調了一下午的 T2 \(\log 值域\) 做法,終於最後在吃飯前五分鐘 A 了,贏!!

插敘一下第二節課體育課

羽毛球要跑圈熱身了,發現籃球沒教練,誒嘿,於是溜走打籃球

然後很快足球就開始踢了,走了走了,感覺大家都進步很多了,畢竟都能保持 10 min 的 0:0 了

藏班後來甚至都不要守門員了( ?

感覺我們就差在站位上了,好幾次如果有合理的站位的話都能進球了

總之就是又踢爽了

晚上

調那天 IOI 賽制的 0/1 Trie,發現之前存的程式碼是依託答辯(

調不出來···問濤哥,lxyt:你首先要從高位到低位建樹

我:為啥。我甚至還想了一會為什麼從低到高不對,我純 🤡

11.1

上午

模擬賽簡直是依託答辯

發現只有 T1、T2 有較多的部分分可拿

在 T1 一個小時想不到正解之後跳了,去通讀題面

發現都不會正解,但只有 T2 有較多的暴力和部分分

先寫了 \(n^2、xxy、2y\) 三檔部分分,預估得分 48

中間不想坐牢於是趁教練不在【資料刪除】了一會

然後打了 T4 的 \(14 pts\),又會了 T3 的 \(xx\),拿連結串列存一下即可,並且這樣貌似隨機資料跑到飛快!預估得分 68

還剩 10 min 的時候,突然想起來 T1 還沒回去打 已經會了的 50 部分分

最終差一點打完不含 \(*、+\) 的部分分,輸麻了。

??只有 T2 有 32 pts,哦原來我快讀寫成了這樣:

(c=='-'?f=1:f=-1)

但是我快讀一直是繼承之前的板子,之前一直沒鍋過,怎麼現在突然鍋了

改完交上發現 T2 能拿 84pts,輸麻了(

下午

不知道幹嘛了,高強度水【資料刪除】

吃飯前拾起了昨天的 0/1 trie,發現假完了

晚上

在 lxyt 的指導下,發現 0/1 trie 稍微改一下就好了

之後向 pig 和 GGrun 學習了 T2 的根號分治,簡直對極了!

但是一個點過不了??被卡常了??

於是和賽時部分分結合了一下終於過了,看到統計裡大家都跑的飛快

想到部分分和正解 map 用法不一樣,於是試了試

於是有以下報告:

  • 當我寫成這樣的時候:

    gp_hash_table<ll, int>num;
    res += 1ll * num[1ll*y1*maxn+y2];
    num[1ll*y1*maxn+y2]++;
    

    總耗時 \(\ge 5600 ms\)

  • 寫成這樣:

    gp_hash_table<int, gp_hash_table<int, int>>num;
    res += num[y1][y2];
    num[y1][y2]++;
    

    總耗時 \(1800 ms\)

  • lxyt 讓我寫成這樣:

    cc_hash_table<ll, int>num;
    res += 1ll * num[1ll*y1*maxn+y2];
    num[1ll*y1*maxn+y2]++;
    

    總耗時 \(2400 ms\)

相關文章