有這樣一個帶有搜索功能的用戶界面需求: 搜索流程如下所示: 這個需求涉及兩個實體: “評分(Rating)、用戶名(Username)”數據與User實體相關 “創建日期(create date)、觀看次數(number of views)、標題(title)、正文(body)”與Story實體相關 ...
我沒有其他組別的號了。所以只能寫 Bronze 的游記了。
如果行的話,下一次我會寫 Silver 的。
一開始看了看三道題,T1T2 感覺都很不可做,直奔 T3。
一看 T3(Bessie 很 nb,會各種各樣的東西,會科學,會魔法,今天我們發現她會分身術),不就是個二分嗎?秒殺。
好的,現在搞 T1T2,直接《男 左 女 右 我 選 左》,開了 T1。
T1 一看數據範圍就知道這題不一般,得推,結果發現答案只與最後一位有關係,秒殺。
所以只有 T2 了。剩下的三個小時四十五分鐘(是的,T1T3只用了 15 分鐘)可以全部用來死磕 T2。
一開始毫無頭緒,乾脆寫模擬,但是用模擬我發現過程是有一定規律的!
找到規律,\(O(M)\) 瞬間變成 \(O(N \log N)\),T2 搞定。
於是...就這樣 AK 了...
附錄:三道題 TJ
按照難易度從小到大排序。
T3
2~4
直接暴力。
\(O(NQ)\)。
5~9
想不出來。
AC
直接預處理出 Bessie 為了到達每一個農場她最晚要什麼時候起來,然後排序 lower_bound
即可。
\(O(Q \log N)\)。
思維:普及-中位
代碼:普及-下位
演算法:普及-中位
無數據結構
綜合:普及-中位
T1
直接想出了正解。
AC
本題有一個絕妙的性質,叫做:
對於一個數 \(x\),如果 \(10 \mid x\),則輸出 E
,否則輸出 B
。
這玩意可以拆成兩部分。
第一部分,如果 \(10 \mid x\),則輸出 E
:
考慮數學歸納法。
首先 10 肯定成立。
\[\because x \ \text{is not palid} \]\[\therefore \forall x \ \text{that is palid}, \ 10 \nmid x \]\[\therefore 10a \to y \to 10b \quad (b \lt a) \]所以成立。
第二部分也就很簡單了:直接選取個位,坑死對方。
\(O(N)\)。
思維:普及-上位
代碼:普及-下位
無演算法
無數據結構
綜合:普及-中位
T2
這個題我要精講!
4~8
直接大模擬。
\(O(NM)\)。
AC
經典多解題。
首先建有向圖。
解法一
Spetial Thank to appear_hope for this solution.
可以觀察到除了環以外,每一個弱連通塊每分鐘會損失 1 單位牛奶。
直接計算。
\(O(\min(M, N))\)。
解法二
用模擬程式推出來的。
我們維護一個最終會流光的桶的集合,然後按照流光的時間從小到大選取。
對於一個流光的桶,被這個桶影響到的桶如果也會流光,那麼也要將這個新桶加入集合。
\(O(\min(M, N \log N))\)。