「Log」2023.8.11 小记
序幕
從今天開始記小記。
七點到校了,先小擺一會,然后整理博客。
聽 MiTiS 的電音,開始寫題。
\(\color{blueviolet}{P1829\ [國家集訓隊]\ Crash的數字表格\ /\ JZPTAB}\)
莫反練習題,式子并不難推,兩個整除分塊解決。
八點整打完,開始調。
忘記初始化了。
篩質數 pri[++pcnt]=true;,不知道自己在寫什么。
沒給 \(\mu(1)\) 賦值,忘寫 ==0,等差數列求和忘除以 \(2\),不知道自己在些什么。
不小心又炸 int 了,討厭取模。
總計浪費 \(20mins\) 調弱智錯誤。
\(\text{Link}\)
間幕 \(1\)
開始學杜教篩,沒學完,開始聽課。
圖論會不了一點。
不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論。
學長請我們喝水。
復習了點雙邊雙,點完外賣開始做題。
外賣到了,正好敲完一遍割點板子,發現以前寫的板子有冗余部分。
打完一道題調不出來,開擺,學習打塊。
午休結束,開調。
\(\color{royalblue}{P3469\ [POI2008]\ BLO-Blockade}\)
考慮分類討論:
- 若節點 \(i\) 不是割點,則 \(ans_i=2(n-1)\)。
- 若節點 \(i\) 是割點,則用組合數計算貢獻即可。
具體地,因為點對有向,所以對于每一聯通塊計算以其為起點的點對。
代碼里計算割點答案時把所有子節點全算上了,錯誤的,應該記錄子節點 \(low\) 比當前節點 \(dfn\) 大的貢獻。
細微重構,開 long long,A 掉。
\(\text{Link}\)
間幕 \(2\)
不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論,不會圖論。
接著聽課,全是 CF 題,會不了一點。
決定不點晚飯,因為剩的午飯夠吃了。
接著寫題。
\(\color{blueviolet}{P4923\ [MtOI2018]\ gcd?人生贏家!}\)
設 \(f_{st,i,j}\) 表示當前寶物獲取狀態為 \(st\),站在第 \(i\) 個寶物位置,用了 \(j\) 次傳送。
考慮預處理寶物之間的距離,注意初值設置即可。
要保證當前點無前置寶物才可以直接設 \(j=0\) 的初值,若 \(k>0\) 則也可以設 \(j=1\) 的初值。
具體地,轉移時枚舉可合法轉移到當前位置的寶物進行轉移,其中保證當前寶物前置、枚舉轉移位置前置都包含在狀態中,特殊判斷用傳送轉移的情況。
最開始做的時候沒看到寶物的前置寶物,讀入時才發現,微小重構改掉。
一堆細節處理問題,改掉。
樣例過了,\(20pts\),為什么呢?
開始閱讀代碼,發現數組開小了,浪費 \(30mins\)。服了。
為什么空間只有 \(19.53MB\)?為什么空間只有 \(19.53MB\)?為什么空間只有 \(19.53MB\)?
但凡空間大點我就一遍過了(指過樣例之后)。
\(\text{Link}\)
\(\color{blueviolet}{P4645\ [COCI2006-2007\#3]\ BICIKLI}\)
考慮 Tarjan 縮點先,判斷起點終點之間是否有環,將無限的狀態打上標記,隨著拓撲排序轉移。
具體地,若一個強聯通分量的 \(siz>=2\)(除非 \(siz=2\) 而且包含起點終點),則將其打上標記。拓撲排序時不需要考慮無關強聯通分量(類似孤點的)。
寫強聯通分量時建了雙向邊,不知道我在寫什么。
特判一下孤立強聯通分量就過了。
\(\text{Link}\)
尾聲
效率好低,最近有點浮躁,找一天好好睡覺罷。
總結
以上是生活随笔為你收集整理的「Log」2023.8.11 小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「Note」Linux 命令行
- 下一篇: Go与C/C++ 互相调用