雅禮集訓 part1

2022-06-26 09:48:09 字數 2220 閱讀 1018

目錄day2

市場實際上算上區間加法增長的部分值域也很低, 對於區間整除最多做 log 次。

所以直接線段樹暴力維護。

【記錄】

矩陣為什麼我會預設可以用列給行染色啊?

只能先搞出一行全黑,然後染完所有列。

由於是給列染色,所以對於第 k 行,只要存在某一行的第 k 列是黑,就可以完成補色,且補色的步數一定。

對於實現,考慮一下分支情況就很好做了。

不想寫(\kel

字串\(q\times k \le 10^5\)。

演算法一:

每次詢問把 w 的所有的子串的 f 處理出來然後計算那個 σ。

可以莫隊算那個 σ, 也可以預處理後直接在處理 w 的子串的 f 的過程中算一下這個子串在 [a,b] 之間被提到的次數, 後者更好寫。

複雜度是 \(o(qk^2\log m)\)

演算法二:

考慮預處理後直接計算 σ。

具體地, 對於每個 w 的每個 endpos, r,算出其最多往前延長到**,使得串是 s 的子串, 然後對於每個詢問 f (,,l,r), 直接倍增在 parent 樹上跳 fa 找到 w[l,r] 對應的節點即可。

不倍增也能過?????

複雜度 \(o(q\log n(k+m))\)

【記錄】

水箱考慮最優的答案對應的局面,整個水箱必定被劃分成幾段, 即 \([1,2,\cdots,n]\) 被劃分成 \([1,\cdots,k][k+1,\cdots,p]\cdots[s+1,n]\)。

對於相同段, 水位相同且擋板不高於水面, 對於不同段, 有擋板相隔, 相隔的定義是擋板兩邊的水位不同。

考慮從低到高掃瞄最低水位, 在這個過程中對所有格仔灌水使得所有格仔的最低水位恰好為這個最低水位(大概), 水位高於擋板就合併連通塊。在這個過程中,所有可能出現的段都會被觀測到, 在觀測的過程中統計答案, 每個段都要考慮最優的選擇是當前水位還是歷史上出現過的子段結構的組合。

【記錄】

棋盤遊戲

將棋盤黑白染色後建二分圖,從某點開始先手必勝當且僅當當前點在所有的最大匹配中都是匹配點, 證明略。

找在某個最大匹配中不是匹配點的方法:首先求任意乙個最大匹配,然後從所有非匹配點開始 dfs, 每次遍歷與當前點相鄰的點 v,v 一定有匹配邊,對於與 v 匹配的點 u, dfs(u),給所有 dfs 到的點打上標記,所有打上標記的點都是要找的點。

證明略。

【記錄】

線段遊戲

李超樹板子。以前寫過幾次,忘了,這裡再整理一下。

首先是儲存,對於線段 \(y = kx+b\) , 儲存 \((k,b)\)。

typedef pairline;

有兩個關於線段的函式:

// 一次函式求值

double f (line l, int x)

// 求線段交點的橫座標

double inter (line x, line y)

插入邏輯自然,比較好寫

#define li (me << 1)

#define ri (li | 1)

#define mid ((l+r)>>1)

#define ls li,l,mid

#define rs ri,mid+1,r

void ins (int me, int l, int r, int x, int y, int id)

double ly1 = f (lin[id], l), ry1 = f (lin[id], r),

ly = f (lin[t[me]], l), ry = f (lin[t[me]], r);

if (ly1 <= ly && ry1 <= ry) return ;

if (ly1 >= ly && ry1 >= ry)

double in = inter (lin[id], lin[t[me]]);

if (ly1 >= ly) else

return ;

} if (x <= mid) ins (ls, x, y, id);

if (y > mid) ins (rs, x, y, id);

}

刪除邏輯也可, 寫起來很舒服。

int lccmp (int x, int x, int y) 

int get (int me, int l, int r, int x)

【記錄】

2021寒假集訓Part 1

鞏固演算法筆記第四章 2021寒假集訓part 1 2021 01 24 25 26 題單由此進!以下只記錄個人覺得有意思的 1 p1177 模板 快速排序 include using namespace std int n,a 1000001 void qsort int l,int r 應用二分...

雅禮國慶集訓

灑落君臣契,飛騰戰伐名。杜甫 公安縣懷古 noip 前的乙個月。這浸滿熱血的虔信,真的會化作墓碑嗎?或許明日我們不再是戰友,但人生終將有無數個此時。define f z,u,v for int z u des z v z des z z struct bnd struct tup template ...

雅禮集訓 2017 價

傳送門 乙個不太顯然的最小割做法。我們這麼連邊 源點向藥物連 infty p i 容量的邊,藥物向它對應的藥材連 infty 容量的邊,藥材向匯點連 infty 容量的邊。用源點的流量減去最小割,再負回來就可以求出答案了。怎麼理解呢?割掉一條邊表示不選其對應的藥物或藥材,我們發現最後的方案一定是完美...