t1一看是毒瘤分塊根本不想寫。
t2部分分都想不到。
t3只會打暴力。
t1正解是比較有意思的掃瞄線+線段樹維護單調棧。
如果我們把操作序列寫出來一定是這個樣子的。
\(m,aaa,m,aa,mm,a\)
然後如果我們把其中的加法操作全部累和就是:
\(a_i,m_i,a_j,m_j,a_k,m_k\)
這樣的話再設\(s_i=\sum\limits_^a_j\)。
這樣乙個新加入的對\(\\),能夠加入棧中的條件就是:\(a_tp+s_i-s_tp
那麼也就是:
\(\\)這個序列的上公升序列。
可以用線段樹維護單調棧維護。
對於某乙個位置按操作序列維護出單調棧。
從1到詢問時間點的單調棧長度+此時從1到詢問時間點的加法標記個數就是值改變的次數。
我們考慮用線段樹維護單調棧來做這一過程。
然後再利用掃瞄線演算法。
從左到右,差分詢問的區間,線段樹上同時支援加入和刪除某乙個點,區間加和區間求單調棧長度,而同時支援單點修改。
這樣對於某乙個位置來說,我們先在時間軸上加入所有的覆蓋這個點的操作,查詢的時候查詢時間軸上詢問以前的全部區間就可以了。
然後我們可以得到單調棧最後乙個元素的大小。
他的大小是\(m_i-s_i\),這樣再用乙個樹裝陣列就行了,查詢加法操作的字首和即可。
t2結論題,不是很能想出來。
t3網路流。
縮了點之後把反向邊開成inf就行了。
這樣可以防止從集合\(s\)向\(t\)之後再反向流回來。
細節很多。
考試 省選96
t1 這個題就是考慮去大力分類討論。首先可以知道 k 3 的情況答案肯定是0.那麼分類討論 3,2,1,0 的情況。首先是 k 3 的情況。這個情況很簡單。首先 m 必須為3。就是我們考慮一下用總的方案去掉鈍角三角形的方案。那麼答案就是 ans binom n sum limits 1 i 這很簡單...
考試 省選95
t1 大神說是打個表找規律啥的。我利用生成函式 吉夫特那個題的結論推出來類似的結論。就是說對於所有深度為 i 的點,其對答案有貢獻,當且僅當 t i 0 這樣的話就可以直接用乙個 orfwt 來做了。t2生成樹計數原題。比原題還簡單。可以把 a i 抽象成乙個點變成乙個含有 a i 個點的連通塊。然...
考試 省選86
t1 首先設出暴力的 dp dp i j k l 為前 i 個點中有 j 個白點結束方案為奇數,k 個黑點結束方案為偶數,當前全部的結束方案之和奇偶性為 l 的方案數。那麼可以很簡單的轉移。在考慮轉移時候的係數。其實只跟 j,k 是否為0有關係。那麼狀態大大化簡為 dp i 0 1 0 1 0 1 ...