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\)