20200728訓練記錄

2022-05-30 16:18:16 字數 879 閱讀 2565

做了兩道可做題,和一道神仙題

c發現是ctsc2016的題就先開了

發現建出操作樹每乙個點的貢獻在dfn序列上是一段連續的區間

於是線段樹分治+set維護動態凸包,詢問直接set上二分就可以\(o(nlog^2n)\)

後來發現不需要動態的

查詢直接在從上到下的log個區間上找就好了

把點按x座標排序維護個單調棧就\(o(nlogn)\)預處理了

考慮詢問優化到乙個log

類似前幾天做的子串求和2的做法

對詢問的x座標排序

那麼對於線段樹上每個節點維護的凸包決策點是單調的

用指標掃下就\(o((n+q)logn)\)了

寫了1h左右中間沒特殊處理點的橫座標相同的情況wa了好久

a數樹看出把所有港口縮成乙個點後原圖是一棵樹

於是直接prufer序算確定所有港口總度數的方案

寫個dp算一下港口分配度數的方案

乘起來就好了

發現模數不是質數要暴力分解質因數算

結果沒寫完

b是神仙題

\(o(nm)\)的dp不難想到

但是優化就顯得非常困難

題解繼續告訴我們dp陣列是個下凸包

這個用類似歸納法比較好證

但是很難想到啊喂

考慮用線段樹維護凸包相鄰點之間連線的解析式

發現對於在乙個層結束或開始的點

他的貢獻是一條斜率是1/-1的直線

是乙個下凸包

分析一下上一層轉移到這一層

發現是乙個分段函式

前面一段斜率為定值

中間答案不變

後面一段斜率又是定值

這又是下凸包

於是也就說明整體是下凸包

寫個線段樹支援區間賦值/增加,單點查就ok了

20160814訓練記錄

t1 題意 給定n 求能組成多少個三角形 題解 列舉三個點,但是切記不要用距離算,會有精度誤差 因為這樣三個點只要不在乙個直線上就行 那麼即可t2 題意 給定100個長度小於100的關鍵字串,給出十篇文章,對於每一篇文章回答是否都包含所有關鍵字串 題解 文章長度1000000 目測一下應該kmp優秀...

2020 0626 訓練記錄

上午8 00 12 00練習賽一場 上來感覺a可以二分答案搞然後就受以前一道題的影響在想費用流 看資料範圍究極自閉 於是就開始去搞b 覺得可做但是沒想到sb差分搞,就搞到11 00都沒什麼思路只會暴力 回頭看a這可真是簽到題啊 直接二分之後sb樹形dp解決 然後再去看c毒瘤計數不會搞 下午改題到自閉...

2020 7訓練記錄

7.1 2019 usp icmc codeforces round 654 div.2 題解 7.2 ucf local programming contest 2014 題解 p6186 noi online 1 提高組 氣泡排序 題解 7.3 題解 7.4 2016 ix samara reg...