20220310刷題筆記

2022-10-08 19:18:08 字數 498 閱讀 3762

2-sat 好題,主要思路是先按照 2-sat 的方式建邊,要求沒對都必須是 \(1\),注意到還有所有和存在的限制,對於這些限制,仔細研究後不難發現,當乙個所有能走到另乙個所有,並且乙個所有和乙個編號比起小的存在在乙個 dcc 裡面的時候,亦或者 2-sat 本來就無解的時候才會無解。利用 tarjan 直接求解並多維護幾個量就可以了。

最近**的實現能力有所下降,需要注意要多思考,多寫,少抄別人**,但是看可以,一定要關上自己寫一遍。

通過轉化題意把題意變成求乙個子樹內有多少和 \(x\) 相等的點,然後我們可以直接開個桶來記錄這個東西。

注意去重,需要去掉其他子樹內的貢獻以及我們路徑到不了的點的貢獻。

二分答案後相當於路徑求教然後去最大值,所以我們直接用樹上倍增做就可以,複雜度兩個 $\log\(1\)

注意我們可以把單點加,鏈求和通過樹上差分變成子樹加,單點求和,然後通過dfs序對映到序列上變成區間加,單點求和,再次差分之後用樹狀陣列來維護。

刷題筆記 Binary watch

include include include using namespace std class solution m count push back i for int i 0 i num i vector a n,n 5 將陣列n的前5個元素作為向量a的初值 vector a n 1 n 4 ...

2018 4 11刷題筆記

classa newa newa newa echo a num 答案是3 因為static變數常駐記憶體 server 是乙個包含了諸如頭資訊 header 路徑 path 以及指令碼位置 script locations 等等資訊的陣列。這個陣列中的專案由 web 伺服器建立。不能保證每個伺服器...

Leetcode刷題筆記

1.兩數之和給定乙個整數陣列nums 和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。ps 你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路 用target減去nums中的每乙個數,並設立乙個字典來記錄對應的下標 class...