<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      做題筆記21

      10.23

      擺完了,除了模擬賽就是幽默題,今天一共做了一個有難度的題

      模擬賽

      太失敗了,沒開 T4

      T1

      考慮當區間足夠大的時候,很有可能所有的數都能被湊出來,這個區間長度的 \(B\) 期望為 \(\sqrt[4]{P}\)

      現在提出 \(\mathcal{O}(nB)\) 的做法,考慮 meet in the middle,記 \(lst_{v}\) 為滿足 \(a_{i}\times a_{j}=v\wedge i\le j\) 的最小的 \(i\),掃一遍即可

      T2

      這是一個閉合回路,所以可以設一個零勢能點,不妨令 \(a_1=0\),對于 \(i>1\),有 \(a_{i}=a_{i-1}+w_{i}\),那么我們每次操作可以變為給 \(c_i\) 加一并給 \(c_j\) 減一,其代價為 \(a_i-a_j\),于是問題就變成求 \(\sum c_i\times a_i\) 的最大值,滿足 \(\sum c_i=0,c_i\in[-x,x]\),發現 \(a\) 的順序無關緊要,于是可以排序,貪心的選擇前半的系數為 \(-x\),后半的系數為 \(x\),不難發現此時如何調整都不優,復雜度線性對數

      T3

      武帝了。

      \(h(x)=\sum_{i,j}\frac{a_ia_jx^{c_i+c_j}}{c_i+c_j}\),那么 \(f(a)\) 就是 \(h\left(\frac{2}{3}\right)+h\left(\frac{1}{3}\right)+h(1)\),我們能夠說明,\(f(a)=0\) 當且僅當對于所有的 \(v\),都有 \(\sum [c_i=v]a_i=0\)

      如何推到?你發現 \(h\) 下面那個分母實在是太幾把丑了,而你 \(x\) 指數上又有 \(c_{i}+c_j\),這啟發我們直接求導,可以得到

      \[h'(x)=\frac{\left(\sum a_ix^i\right)^2}{x} \]

      你發現對于 \(x>0\),有 \(h'(x)\ge 0\),當 \(x=0\) 時,有 \(h(x)=0\),所以有 \(h(x)\ge 0\),那么為了使得 \(h\left(\frac{2}{3}\right)+h\left(\frac{1}{3}\right)+h(1)=0\),必須要滿足 \(h\left(\frac{2}{3}\right),h\left(\frac{1}{3}\right),h(1)\) 全都是 \(0\),此時你也要滿足 \(h'(x)=0\),所以能得到

      \[\sum_{i=1}^{n}a_ix^i=0 \]

      那么現在就是 \(c_i=1\) 的問題,即求 \(\sum t_id_i=S,t_i\ge 0\) 的整數解的個數,由于 \(n\)\(d_i\) 都很小,考慮一個經典的背包轉數位 dp,記 \(D=\max d_i\)

      從低到高考慮,記 \(f_{w,v}\) 為考慮了前 \(w\) 位,進位為 \(v\) 的方案,這樣可以做到 \(\mathcal{O}(qn^2D\log S)\)

      考慮 meet in the middle,記 \(f_{S,v}\) 為前 \(B\) 位為 \(S\),進位為 \(v\) 的方案,詢問的時候再合并就可以了,總復雜度 \(\mathcal{O}(n^2D\sqrt S+qnD)\)

      T4

      求所有層中的括號匹配,我們發現如果 \(u<v<w\)\(w\) 在兩層中分別和 \(u,v\) 匹配,那么讓 \(w\) 在這兩層中只與 \(u,v\) 中更低的那一個匹配是不劣的,于是就能轉化成一個匹配問題,給你一些 \(x\),后面的可以向前面匹配,其貢獻為后面的 \(x\) 減掉前面的 \(x\) 的二倍,問最大權任意匹配

      考慮費用流建模:

      • \(S\rightarrow i,(1,2x_i)\)
      • \(i\rightarrow i-1,(+\infty,0)\)
      • \(i\rightarrow T,(1,-2x_i)\)

      我們要求出最大費用任意流,考慮把他轉化成最大費用最大流,也就是讓費用非負,發現我們可以把所有沒流滿的 \(i\) 都流了 \(S\rightarrow i\rightarrow T\),這樣不影響答案,這時候所有的 \(i\rightarrow T\) 都流滿了,于是我們可以重新建模

      • \(S\rightarrow i,(2,2x_i)\)
      • \(i\rightarrow i-1,(+\infty,0)\)
      • \(i\rightarrow T,(1,0)\)

      最后再把費用減去 \(\sum 2x_i\)

      現在考慮怎么求這個的最大費用最大流,我們可以先求出任意一組最大流,然后在上面找環,而在這個圖中,所有正權環只可能是 \(S\rightarrow S\),所以我們需要找到若干 \(S\rightarrow u\rightarrow v\rightarrow S\) 的環,然后加上他們的貢獻

      現在考慮 \(u\) 的權值被調大的影響,另一種情況是對稱的,這時候肯定是 \(u\) 流的不比之前少不劣,我們這時候會試圖找一個 \(v\),然后跑 \(S\rightarrow u\rightarrow v\rightarrow S\) 的環,其貢獻就是 \(x_u-x_v\),于是我們要找的就是 \(x_v\) 最小的,且至少流過 \(1\) 的流量,在 \(i\leftrightarrow i-1\) 的那些邊上能夠從 \(u\) 到達的 \(v\),由于 \(i\rightarrow i-1\) 流量為正無窮,所以 \(<u\) 的位置都能到,而 \(>u\) 的位置,必須滿足 \((u,v)\) 中所有 \(i\rightarrow i-1\) 的反向邊的流量不為 \(0\),于是可行的 \(v\) 是一個前綴,這個前綴可以線段樹上二分找到,然后做區間查詢,可以簡單維護

      復雜度線性對數

      P14231 復讀機 / repeat

      qoj 970,沒想到還能單 log

      將問題轉為數點,每一個貢獻都是形如 \((l,r,i,j)\) 表示在 \(v\in[l,r]\) 的時候 \(i,j\) 為相鄰的一類數,并且有 \(1\) 的貢獻,可以差分變成單點加矩形和,直接二分即可

      發現對于一個時刻 \(v\),仍有貢獻的四元組 \((l,r,i,j)\),其中所有的區間 \([i,j]\) 除端點外不相交,那么數點就可以降一位,只要求 \(i\) 在區間內,此時只會多算包含右端點的一個貢獻區間

      查前驅后繼可以在整體二分的時候雙指針

      復雜度線性對數

      P14230 不連續子串 / subseq

      \(f_i\)\(i\)\(q\) 中末尾的方案,考慮從 \(j\) 轉移到 \(i\),則應該滿足

      • \(\forall k\in(j,i),a_k=a_i\)\(k\) 不在 \(p\)
      • \(l=\max_{k\in(j,i),a_k=a_i} k\),必須存在 \(x\in(l,i)\)\(p\)
      • 對于 \(p\) 中的相鄰兩個數 \(u,v\),滿足 \(\not\exists k\in(u,v),a_k\ne a_v\)

      復雜度平方

      P14188 [ICPC 2024 Hangzhou R] Barkley III

      哈哈。

      P14194 [ICPC 2024 Hangzhou R] Heavy-light Decomposition

      我場切了綠題,真是太厲害了呢!

      P13976 數列分塊入門 1~9

      很無聊

      P14177 【MX-X23-T7】我愛數數

      愛慕愛嗯愛慕愛艾克斯容斥,此時對于所有的操作,你會有一個限制,你每次只能操作那些沒有被限制到的區間,假如區間有 \(k\) 個,這樣概率是 \(\sum_{i=0}^{\infty}\left(\frac{k}{m}\right)^i=\frac{m}{m-k}\)

      所以考慮找出來區間最小值,做區間 dp,區間最小值左右都是獨立的,于是可以直接 dp,容易做到復雜度 \(\mathcal{O}(m^3n^2)\),轉移形如一個背包,把那一位用點值表示就能做到 \(\mathcal{O}(m^3n)\)

      P14176 【MX-X23-T6】網格 III

      考慮 \((i,j)\)\((i+k-1,j+k-1)\),如果是紅的,要么橫豎當前都是紅色,要么橫著的當前全是紅色,且豎著的白色最晚的出現時刻小于橫著的紅色的最早出現時刻,容易用線段樹維護,復雜度 \(\mathcal{O}(nk\log n)\)

      P6982 [NEERC 2015] Jump

      先問全 \(1\),然后從左到右一個一個翻,這樣肯定有一個時刻能問出來 \(\frac{n}{2}\)

      然后對于相鄰的兩位,歸為一組,每組翻轉了問一下,這樣能判斷是全問對了還是只問對了一個,全問對了好說,只問對了一個的可以找一個已知的再問一下,如果全是只問對了一個,可以把其中的兩組 \(12\)\(34\) 拉出來,問一下 \(23\) 看是全問對了還是只問對了一個,如果只問對了一個,再問一下 \(13\) 就行了

      這樣找一個 \(\frac{n}{2}\)\(n\) 次操作,問出來正確的串也要 \(n\) 次操作,總操作次數 \(2n\),這直接爆了

      考慮最開始的時候隨機問,正確的概率是 \(\frac{\binom{n}{\frac{n}{2}}}{2^n}\),問個五百次就差不多了

      10.24

      補了昨天的 T4,并沒有想象中這么難

      今天仍然是擺完了,做了很多幽默題

      如此狀態,如何 CSP?

      P6276 [USACO20OPEN] Exercise P

      求的實際上就是所有排列置換環長度的 \(\text{lcm}\),我們可以參考 \(\min-\max\) 容斥做 \(\gcd-\text{lcm}\) 容斥,即

      \[\begin{aligned} \text{lcm}(S)=&\prod_{p\in\text{prime}}p^{\max(S)}\\ =&\prod_{p\in \text{prime}}p^{\sum_{T\in S,T\ne \emptyset}(-1)^{|T|-1}\min(T)}\\ =&\prod_{p\in \text{prime}}\prod_{T}p^{(-1)^{|T|-1}\min(T)}\\ =&\prod_{T}\gcd(T)^{(-1)^{|T|-1}} \end{aligned} \]

      考慮欽定 \(d|gcd\) 做容斥,記 \(f_{i}\) 為把 \(i\) 個數劃分到若干個環上的答案,每次枚舉第一個元素的環長,則有轉移

      \[f_{i}\times\binom{i+j-1}{j-1}\times(j-1)!\rightarrow f_{i+j} \]

      我們還要記一個 \(g_i\) 表示把環上 \(id\) 個數劃分到若干個長度是 \(d\) 的倍數的環上的答案,這個要帶上容斥系數,則有轉移

      \[-g_{i}\times \binom{(i+j)\times d-1}{j\times d-1}\times (j\times d-1)!\rightarrow g_{i+j} \]

      那么欽定 \(d|gcd\) 的答案就是 \(\sum_{i=1}^{\frac{n}{i}}g_i\times f_{n-id}\times\binom{n}{id}\)

      直接做復雜度就是 \(\mathcal{O}(n^2)\)

      \[\int_{1}^{n}\frac{1}{x^2}\mathrmw0obha2h00x=1-\frac{1}{n} \]

      P11816 [PA 2019 Final] 擺棋 / Pionki/#1250. Tokens / Pionki

      問題是一個最大匹配的判定,考慮霍爾定理,如果選了左部點 \((i,j,k)\),那么其鄰域會加上 \(\sum_{a\le i,b\le j,c\le k}b_{i,j,k}\),那么被 \((i,j,k)\) 偏序的左部點肯定也會都選上,最后要求的就相當于一個最大全閉合子圖

      \(B,C\) 很小,考慮狀壓,發現每一層的狀態其實都是一個折線,于是可以輪廓線 dp 轉移,復雜度 \(\mathcal{O}\left(A(B+C)\binom{B+C}{B}\right)\)

      P5999 [CEOI 2016] kangaroo

      連續段 dp,每次加一個數,若 \(i\ne s/t\),可以新開一個段或者合并兩個段,否則只能放在首/尾

      容斥確實能做

      P9675 [ICPC 2022 Jinan R] Shortest Path

      太強了

      考慮最終路徑大概是走了 \(\mathcal{O}(n)\) 步,然后在一條邊上反復橫跳,然后再走 \(\mathcal{O}(n)\) 步到達 \(n\),而且我們可以說明當 \(k>4n\) 時結論一定成立

      對于一條最短路徑,我們取出來他的最小邊 \(e\),觀察到如果一個環長度為偶數,我們可以把這個環替換成若干邊 \(e\),而如果全是奇環,有兩個我們也可以把他替換掉,所以考慮鴿巢原理,對于任意一條點數 \(>2n\) 的最短路徑,至少存在某一個點 \(x\),在這條路徑上出現了三次,這三次會形成至少兩個環,于是我們只需要分討這個兩個環的奇偶性就能消環了,這樣會一直消環直到點數 \(\le 2n\),所以結論得證

      于是預處理出來 \(f(u)\) 表示 \(1\rightarrow u\rightarrow n\),走了 \(4n+1\) 步的答案,\(g(u)\) 表示 \(1\rightarrow u\rightarrow n\),走了 \(4n\) 步的答案對于,那么最終答案的形式是一個半平面交,我們可以求出來凸包再等差數列求和,復雜度 \(\mathcal{O}(nm)\)

      P8916 [DMOI-R2] 暗號

      考慮把貢獻拆到每個點上,其貢獻只和到根鏈上的黑色連續段數有關,所以可以直接存到狀態里,從下往上 dp 即可,復雜度 \(\mathcal{O}(n^3)\)

      P6072 『MdOI R1』Path

      考慮淀粉質,可以做到三個老哥

      發現淀粉質太唐了,考慮對于每個點,分別求出其子樹內的最大值和子樹外的最大值,前者可以啟發式合并做到 \(\mathcal{O}(n\log n\log V)\),后者考慮拉出來全局最大的路徑,于是只需要求這條路徑上的答案,正著倒著分別掃一遍即可,復雜度 \(\mathcal{O}(n\log V)\)

      總復雜度 \(\mathcal{O}(n\log n\log V)\)

      你發現這個子樹內最大值太唐了,因為我們只需要對最大的鏈上的點求子樹內最大值,這個啟發式合并就不用對每個點都做一遍了,只需要把最大的鏈上的相鄰點合并就行了

      復雜度線性對數

      P14250 [集訓隊互測 2025] 攜春同行

      為啥是黑來著

      自然的想法是問菊花,我們把 \(a_i\) 最大的叫做 \(A\),次大的叫做 \(B\),第三大的叫做 \(C\),你發現你問出來的每個結果都形如 \(A+B+x\),而且你考慮最大的、次大的、第三大的,他們三個問出來肯定都是 \(A+B+C\),這樣用了 \(n\) 次就知道了很多信息,但是題目說 \(n+1\) 次,所以你可以再問一次鏈,得到 \(\sum a_i\) 的值,這樣你就能解出來 \(C\) 的值,從而能得到 \(A+B\) 的值,進而能得到所有的非最大、次大的值

      現在考慮一般的情況,這時候你的 \(A+B+C\) 可能不止三個,而題目要求出 \(n-2\) 個數,那就別管最大次大了,考慮如何求出所有的 \(C\),要求次數是 \(\log\) 級別的,于是考慮二分,把可能等于 \(C\) 的一半拿出來,構造一個鏈,其他的點放成一條,然后你把拿出來的點放在中間,這樣你就能問出來你拿出來的點中是否存在不是 \(C\) 的點,這樣你二分兩次就行了,詢問次數 \(2\log_2n\le 20\),隨便過

      感覺訓了這么長時間,唯一提升的是交互水平

      P14252 [集訓隊互測 2025] 集你太美

      在最終情況下,所有點都會被操作無窮次,因為肯定存在某一個點操作了無窮次,其相鄰點就不可能操作有限次

      假如 \(i\) 第一次操作在 \(i+1\) 之前 ,那么一定有 \(w_i\ge\sum_{j=1}^{i=1}e(i,j)\)

      所以對于操作序列 \(1,2,\cdots ,n\),我們可以操作一次之后將 \(n\) 放在開頭,你發現此時仍然合法,于是上述條件是充要的

      于是 \(\sum_{i=1}^{n} w_i\) 的下界是所有邊的權值之和,并且可以將圖定向為一個 \(DAG\) 之后,給每個點賦權值為其所有入邊的權值之和來構造 \(o=1\)

      對于 \(o=2\),隨便定向,觀察定向后任意一個出度為 \(0\) 的點 \(u\),該點顯然滿足 \(w_u\ge \sum_{(u,v,x)\in E}x\),將 \(u\) 刪掉遞歸判定即可,最終 \(G\) 被刪空則有解,否則無解

      CF2129E Induced Subgraph Queries

      看起來根本就不能 polylog,于是考慮根號數據結構,發現每個點的操作代價是 \(\mathcal{O}(deg)\) 的,這太難受了,于是可以拆點,每個點拆成 \(deg\) 次操作,再跑莫隊復雜度就對了

      對于 kth,可以用值域分塊維護

      總復雜度 \(\mathcal{O}((n+m)\sqrt{n+m})\)

      CF2115E Gellyfish and Mayflower

      考慮一條路徑上性價比最大的 \((c,w)\),感性理解一下,當選了一些數之后就只會再選性價比最大的了,因為考慮在膜 \(c\) 意義下,如果同一個余數出現了兩次,那么不如把那一段路徑的其他點直接選若干個 \(c\),這樣肯定是更優的,為了不讓一個余數出現兩次,背包大小只需要開到 \(c^2\)

      于是考慮同余最長路,記 \(f_{s,u,r,0/1}\) 表示性價比最大的為 \(s\),當前在 \(u\),膜 \(c\)\(r\) 的答案,最后只需要查詢 \(\max_s f_{s,u,r\bmod c_{s},1}+\left\lfloor\frac{r}{c_s}\right\rfloor\times w_s\)

      轉移的話,單點之間的轉移可以轉圈,這樣轉移復雜度是線性的,不同點之間的轉移,邊權為 \(w_i-\left\lfloor\frac{r+c_i}{c_s}\right\rfloor\times w_s\)

      所以當詢問的 \(r\) \(>c^2\) 時,我們跑這個算法,對于 \(r\) 比較小的情況,我們跑 \(\mathcal{O}(n(n+m)c)\) 的暴力,所以總復雜度 \(\mathcal{O}(nq+(n+m)(n+c)c)\)

      CF2122F Colorful Polygon

      沒想到組合數乘積,太失敗了

      如果能表示成組合數乘積,我們就可以變成幾個高度為 \(2\) 的矩形,然后在上邊放 \(n+1\) 個點,下面放 \(m+1\) 個點,這樣就是 \(\binom{n+m}{n}\)

      容易把兩個矩形拼起來,變成乘積,那么考慮最簡單的方案就是 \(\prod_{i=1}^{n}\binom{\sum_{j=1}^{i}a_j}{a_i}\),然而這樣點數是 \(\mathcal{O}(n\sum a_i)\) 的,考慮分治,把集合 \(S\) 對應的多項式系數表示成 \(f(S)\),則把他分成兩個集合 \(U\)\(V\),可以得到 \(f(S)=\binom{s(U)+s(V)}{s(V)}f(U)f(V)\),其中 \(s(U)\)\(U\) 中元素的和,我們按照重量比較平衡的分法進行遞歸就行了,點數 \(\mathcal{O}(\log n\sum a_i)\)

      CF2097E Clearing the Snowdrift

      掃描值域,每次做一個問題:給你一堆 \(1\) 和一堆 \(0\),求最小長度為 \(d\) 的區間數能包含所有的 \(1\),用 LCT 維護,\(0\) 點連向 \(i+1\)\(1\) 點連向 \(\min(i+d,n+1)\),答案就是 \(1\)\(n+1\) 鏈上權值和

      復雜度線性對數

      CF2096F Wonderful Impostors

      雙指針

      對于加入 \(1\),查詢其覆蓋的是不是已經全是 \(0\) 了,可以線段樹維護區間加,區間最值

      對于加入 \(0\),查詢其構成的最長的 \(0\) 連續段是否包含了一個 \(1\),也就是查詢 \(r\le qr\) 的最大的 \(l\),線段樹套 set 完事

      復雜度 \(\mathcal{O}(n\log^2n)\)

      10.25

      模擬賽

      T1

      模擬

      T2

      類似括號序列 dp 就行了

      T3

      容斥

      T4

      枚舉每個數的貢獻,區間合法當且僅當被貢獻了兩次,掃描線維護區間加、區間最大值、區間最大值的權值加

      10.26

      P13540 [IOI 2025] 羊駝的坎坷之旅(obstacles)

      太難了,只會 \(l=0,r=m-1\)

      手玩一下發現路徑大概都是一堆 \((0,x)\rightarrow (z,x)\rightarrow (z,y)\rightarrow(0,y)\),于是考慮 \((0,i)\) 能不能到達 \((0,j)\),記 \(pre_i\)\((0,i)\) 直著往下走能走到最遠的位置,記 \(T'_{r}=\max_{k=1}^{r}T_k\),記 \(H'_{l,r}=\max_{k=l}^{r}H_k\),那么 \(i\) 能到達 \(j\) 當且僅當 \(T'_{\min(pre_i,pre_j)}\ge H'_{i,j}\),于是這樣就能給 \(i,j\) 連一條邊,最后可以并查集判斷連通性

      發現很多邊都沒用,具體來說,如果存在 \(i<j<k\)\(pre_i\le pre_j\le pre_k\),此時只需要保留 \((i,j)\)\((j,k)\) 的邊,于是我們只需要單調棧兩邊,連 \(i\) 和左邊第一個 \(pre_j>pre_i\)\(j\) 記作 \(L_i\),右邊第一個 \(pre_j>pre_i\)\(j\) 記作 \(R_i\),判斷一下是否能連邊就能 \(83\) 分了

      既然都單調棧了,不妨在笛卡爾樹上考慮,\(i\)\(j\) 能互相到達,也就是 \(i\)\(j\) 有能到達的公共祖先,于是考慮問出 \(i,j\)\([l,r]\) 內的最淺的祖先,判斷是否相同

      首先一直倍增跳父親,直到 \(x\) 的子樹包含了 \(l\) 或者 \(r\),此時不能再隨便跳了,但是舒服的是他只能往其中一邊跳,再往后跳的過程可以直接倍增,問題是找到這個一直往一邊跳之前到的祖先,如果我們找到一條極長的左偏的鏈 \(a_1,a_2,\cdots ,a_k\),他們之間互相能到達,且他們的 \(L\) 都是一樣的,記作 \(p\),現在想要跳到 \(p\),你這時候發現,如果 \(a_i\) 能直接到達 \(p\),那么 \(a_{i+1}\) 也能直接到達 \(p\),所以如果想讓 \(a_1\) 跳到 \(p\),只需要找到最小的 \(a_k\) 滿足 \(a_k\) 能到達 \(p\),然后跳過去就行了

      所以找到 \(x\) 的這個祖先,如果 \(x\)\(L_x\)\(R_x\) 都能到達,跳深度更淺的那一個,否則直接跳

      復雜度線性對數

      P13691 [CEOI 2025] highest

      考慮倍增,普通的倍增直接爆了,于是考慮怎么讓每次倍增可以決策一個兩步,考慮到 \(2^i=2^{i-1}+2^{i-1}\),也可以是 \(2^{i}=(2^{i-1}-1)+(2^{i-1}-1)+2\),這樣就能考慮到 \(2\) 了,再加上 \(2^{i}-1=2^{i-1}+(2^{i-1}-1)\),直接倍增即可

      復雜度線性對數

      P14311 【MX-S8-T4】平衡三元組

      考慮如果固定中間值,左右肯定越大越好,所以肯定有一個取到全局最大值,假如 \(z\) 取到全局最大值,\(x\) 必定是 localmax,掃所有 \(x\),查一下 \(x\) 右邊有沒有合法的 \(y\),如果沒有,則去考慮前一個 localmax,此時會除二,所以只用做 \(\mathcal{O}(\log V)\) 次,總復雜度 \(\mathcal{O}(n\log n\log V)\)

      P13695 [CEOI 2025] theseus

      我曹

      首先給一條邊賦 \(0/1\) 可以給這條邊定向從編號小的或者是編號大的,跑一邊 bfs 給圖分層,如果所有邊都是不同層了,直接連就行了,出現同層的就廢了,現在考慮怎么處理同層的邊

      把每一層的邊摘出來,從層數大的處理到層數小的,不同層的邊把他歸到兩個點中層數更高的那一層去,對于邊 \((x,y)\),以 \(x\) 為第一關鍵字,\(y\) 為第二關鍵字從大到小排序,給每個點記一個勢能 \(f\),初始值都是 \(1\),依此遍歷每一條邊,如果不同層,讓層數大的連向層數小的,否則讓 \(f\) 小的連向 \(f\) 大的,把 \(f\) 小的清空,加到 \(f\) 大的上,最后你走的時候每次走出邊中編號最大的即可

      去掉無向邊后該圖變成一個有向樹,勢能為子樹 \(siz\),每次走相同層的邊都會使得勢能翻倍,于是總次數 \(dis+\log n\)

      P10055 [CCO 2022] Good Game

      考慮把所有的連續段搞出來,長度 \(>1\) 的為一類叫做 \(2\),否則叫做 \(1\),這樣顯然和原來沒有任何區別,有用的操作只有兩種:刪掉最左邊或者最右邊的 \(2\)、刪掉中間的 \(2\),并將兩邊的東西合并成一個 \(2\),因為把一個 \(2\) 變成一個 \(1\) 顯然更劣,\(2\) 是更加自由的

      接下來對串長分奇偶討論:

      當串長為奇數,形如 \(2k+1\),我們可以說明串能被消完當且僅當串正中間是 \(1\),且存在長度至少為 \(k\)\(1\) 連續段

      容易說明充分性,考慮長度為 \(k\) 的那一段,左邊和右邊必定有兩個 \(1\) 不能刪掉,那就沒了

      否則如果正中間不是 \(1\),我們可以一直操作正中間的 \(2\) 把所有數都消了,否則考慮此時所有的 \(2\) 之間的間隔 \(< k\),我們考慮與中間的 \(1\) 相鄰的兩個 \(2\),觀察最中間的數的變化,如果刪掉一邊的 \(2\),那么中間的 \(1\) 會減少一個,并且中間位置會向另一邊偏,考慮最偏的情況,左邊的 \(2\)\(L\) 處,右邊的 \(2\)\(L+k\) 處,如果我們只刪左邊,可以刪 \(L-1\) 次,那么最中間的下標在 \([k+1,L+k]\),也就是說右邊的 \(2\) 肯定在某個時刻會變成最中間的數,這時候刪他就行了

      對于偶數的情況,最后一定會剩下 \(22\),于是合法的偶數串一定能劈成兩個合法的奇數串,判斷前后綴即可

      構造方案是簡單的,復雜度線性

      P12033 [USACO25OPEN] Package Pickup P

      如果確定了一個奶牛所控制的區間,其肯定是先往一邊跑再掉頭跑另一邊,考慮 dp,記 \(f_{i,0/1/2/3}\) 表示 \(i\) 被左邊還是右邊經過,經過了一次還是兩次,轉移是矩陣乘法

      可以按 \(M\) 分塊,本質不同的塊只有 \(\mathcal{O}(N)\) 種,我們可以把對塊形態的修改掛到開頭結尾,用線段樹維護單點修改全局矩陣乘積,本質相同的塊做矩陣快速冪即可,復雜度線性對數,會帶一個大常數

      10.28

      真他媽無敵了,今天做題數=1,晚上看了一個題還沒看懂

      模擬賽

      T1

      幽默

      T2

      打表

      T3

      拉出極小的 mex 區間,對于 mex 相同的 mex 區間,做一個點減邊,查詢區間 \(\sum_{L\le l,r\le R}v_{l,r}(R-r+1)(l-L+1)\),復雜度線性對數

      T4

      直接看原題解吧,寫在這有點太有點了

      P9970 [THUPC 2024 初賽] 套娃

      我們稱一個區間 \([l,r]\) 為極小的 \(\text{mex}\) 區間,滿足不存在 \([l',r']\subset [l,r]\),其中 \([l',r']\)\(\text{mex}\) 等于 \([l,r]\)\(\text{mex}\),有結論,極小的 \(\text{mex}\) 區間的個數是線性的

      考慮區間 \([l,r]\),其中肯定有 \(a_l=\text{mex}\) 或者 \(a_r=\text{mex}\),且肯定有 \(a_l\ne a_r\),不妨設 \(a_l<a_r\),假如有 \([l,r]\) 是極小的 \(\text{mex}\) 區間,如果存在另一個極小的 \(\text{mex}\) 區間 \([l,r_1]\) 滿足 \(a_{r_1}<a_l\),因為有 \(\text{mex}([l,r])\ge a_l>a_{r_1}\),所以 \(a_{r_1}\) 肯定在 \([l,r]\) 中出現過了,所以不可能存在這樣的 \(r_1\),于是我們證明了對于所有的 \(l\) 只存在一個這樣的 \(r\),同理我們能證明對于所有的 \(a_r>a_l\) 只存在一個這樣的 \(l\),所以極小的 \(\text{mex}\) 區間的個數是線性的,且其個數上界為 \(2n\)

      如何取出所有的區間?考慮從 \(0\sim x-1\) 的區間推出 \(x\) 的區間,首先顯然,所有 \(\text{mex}=x\) 的極小的區間肯定要包含一個 \(\text{mex}< x\) 的區間,所以可以考慮從 \(x-1\) 擴展出其他的,對于 \(\text{mex}=x-1\) 的區間 \([l,r]\),我們找到其左邊第一個 \(x-1\),記其位置為 \(pl\),再找到其右邊第一個 \(x-1\),記其位置為 \(pr\),那么我們再在 \(\text{mex}(pl,r)\) 的位置加入 \((pl,r)\),在 \(\text{mex}(l,pr)\) 的位置加入 \((l,pr)\),一直這樣做就能找到所有的區間了

      回到本題,我們可以考慮找到所有極小的 \(\text{mex}\) 區間 \([l,r]\),再在其基礎上左右擴展,其對應的找到極大的 \(\text{mex}\) 不變的區間 \([l',r']\),那么就能貢獻到 \([r-l+1,r'-l'+1]\),用老司機樹維護顏色段即可,總復雜度線性對數

      10.29

      模擬賽

      T1

      感覺比 T2 難

      T2

      奇異搞笑

      T3

      幽默

      T4

      \(F_{i+j}=F_{i+1}F_{j}+F_{i}F_{j-1}\)

      10.30

      去海邊了,很好玩

      10.31

      11.1

      太幽默了,就這樣吧

      11.2

      刺激戰場

      11.3

      擺爛

      11.4

      有兩個題完全沒看懂,太失敗了

      模擬賽

      T1

      800。

      T2

      幽默。

      T3

      神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!

      T4

      神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!神題!

      AT_agc073_c [AGC073C] Product of Max of Sum of Subtree

      記題目中要求的 \(x_i\)\(g_i\)

      如果我們知道了所有點的權值 \(w_i\),那么有 dp,\(f_u=w_u+\sum_{v\in \text{son}(u)}\max(f_v,0)\)\(g_u=f_u+\max(g_{fa}-\max(f_u,0),0)\)\(g\) 太難考慮了,我們考慮找到合法的 \(f\) 的充要條件

      有一個必要條件是 \(f_1\in[0,1]\)\(\forall u>1,f_u\in [-1,1]\),首先有 \(g_1=f_1\),所以有 \(f_1\in[0,1]\),對于 \(f_u\) 的上界,有 \(g_u\ge f_u\),所以有 \(f_u\le 1\),對于 \(f_u\) 的下界,有 \(g_u=f_u+\max(g_{fa}-\max(f_u,0),0)\),其中 \(g_{fa}\le 1\),所以 \(\max(g_{fa}-\max(f_u,0),0)\le 1\),所以 \(f_u\ge -1\)

      \(s_u=\sum_{v\in \text{son}(u)}\max(f_v,0)\),有 \(f_u=w_u+s_u\),我們發現此時有 \(0\le s_u\le|\text{son}(u)|\),所以如果我們確定了所有點的 \(f\) 值,有且僅有一組 \(w_u\in[1-N,1]\) 的方案滿足當前的 \(f\)

      于是只需要考慮 \(f\),跟據 \(g_u=f_u+\max(g_{fa}-\max(f_u,0),0)\) 討論:

      • \(f_u\in[-1,-g_{fa})\)\(g_u=f_u+g_{fa}<0\),此時不合法
      • \(f_{u}\in[-g_{fa},0)\)\(g_u=f_u+g_{fa}\)
      • \(f_{u}\in[0,g_{fa})\)\(g_{u}=g_{fa}\)
      • \(f_{u}\in[g_{fa},1]\)\(g_u=f_{u}\)

      于是可以 dp,記 \(F_u(x)\)\(g_u=x\) 的答案,則有

      \[F_u(x)=x\prod_{v\in\text{son}(u)}\left(\int_{-x}^{0}F_v(x+y)\mathrmw0obha2h00y+\int_{0}^{x}F_v(x)\mathrmw0obha2h00y+\int_{x}^{1}F_v(y)\mathrmw0obha2h00y\right) \]

      也就是

      \[F_u(x)=x\prod_{v\in\text{son}(u)}\left(\int_{0}^{1}F_v(y)\mathrmw0obha2h00y+xF_v(x)\right) \]

      直接維護多項式轉移即可,復雜度 \(\mathcal{O}(n^2)\)

      P11420 [清華集訓 2024] 乘積的期望

      首先把 \(\prod a_i\) 拆開,變成操作若干次,每次操作將所有的 \(n\) 個數劃分到若干個集合中,集合總數為 \(C\),每個集合中的數相差小于 \(m\),對這樣的方案求和,考慮 dp,記 \(f_{i,j,S}\) 為考慮了前 \(i\) 個數,將其劃分到 \(j\) 個非空的集合中,\(S\) 中存儲 \([i-m,i-1]\) 那些位置中,作為集合中的最小值且還沒有最大值和其匹配的位置都有哪些,于是有這幾種轉移‘:

      • \(i\) 既不是集合中的最大值又不是集合中的最小值
      • \(i\) 是集合中的最小值
      • \(i\) 是集合中的最大值,枚舉和 \(S\) 中的某個最小值匹配
      • \(i\) 獨自一個集合

      最終答案為 \(\sum_{i} f_{n,i,S}\times A(C,i)\times \left(\sum b\right)^{-i}\)

      \(m\le 16\) 時,采用此算法可以做到 \(\mathcal{O}(n^2m2^m)\) 的復雜度,同時我們也知道,最終答案一定是關于 \(C\)\(n\) 次多項式

      \(m>16\) 時,考慮在結尾填上若干個 \(0\) 湊成 \(n=3m\)

      考慮將 \(n\) 分成三組,\(1\sim m\)\(m+1\sim 2m\)\(2m+1\sim 3m\),對其進行計數,記 \(a_i\) 為最終 \(i\) 覆蓋的次數,考慮合法 \(a\) 的充要條件

      • \(\forall i\),有 \(a_i\ge 0\)
      • \(\forall 1\le i\le m\),有 \(a_i+a_{i+m}+a_{i+2m}=C\)
      • \(\forall 1\le i<m\),有 \(a_i\le a_{i+1}\)
      • \(\forall 2m+1\le i<3m\),有 \(a_i\ge a_{i+1}\)
      • \(a_{m}+a_{2m+1}\le C\)

      于是直接 dp,在最外面枚舉 \(a_{2m+1}\),記 \(f_{i,a,b}\) 表示考慮前 \(i\) 列,當前列上 \(i\)\(2m+i\) 分別是 \(a\)\(b\) 的方案,直接 dp 就能做到 \(\mathcal{O}(nC^5)\),分步轉移即可去掉一個 \(C\),再拉格朗日插值就能 \(\mathcal{O}(n^6)\)

      P11425 [清華集訓 2024] 路南柯

      結論:答案為刪去葉子后得到的樹的葉子個數,特別的,菊花的答案為 \(2\)

      把拓撲序倒過來,就變成了 dfn 序,我們隨便拉一個 dfn 序,其中對樹的形態的限制只有形如點 \(i\) 的父親的 dfn 序在點 \(i\) 之前,所以當前一個點可能有很多個父親,我們就需要把所有點的父親找到

      考慮原樹上的葉子,為了區分其父親和祖父,一定要存在一次拓撲的起點在這個葉子的父親的子樹中,否則無論如何都無法區分其父親和祖父,于是答案不會小于刪去葉子后得到的樹的葉子個數

      考慮構造到這個下界,找到所有的刪掉葉子后剩下的葉子 \(x_1,x_2,\cdots,x_k\),任選一個作為根跑一邊 dfs,遍歷時優先訪問葉子節點,此時,對于點 \(u\),若其子樹內存在某個點作為拓撲序的開頭,\(u\) 的父親就能被確定了,所以只需要考慮那些葉子的父親,對于 \(x_{2},x_3,\cdots,x_k\),以他們出發進行 dfs,訪問節點是優先訪問 dfn 大的,這樣就能找到葉子的父親了

      P11428 [清華集訓 2024] 前往何方

      考慮問出若干個獨立集,之后可以變色龍

      所有點問一遍 \(U/\left\{u\right\}\),然后可以確定重心,如果我們按這個結果排序,可以確定一個拓撲序,所以可以直接二染色,這樣就兩個獨立集,直接變色龍就行了

      P11423 [清華集訓 2024] 阿爾塔爾 2

      有經典結論,長度 \(\le 2\),不過我突然不會證了

      取出出度最大的點 \(u\),其出度集合為 \(S\),入度集合為 \(T\),此時若長度大于 \(2\),則所有 \(T\) 中必定存在點向 \(S\) 中的點有出邊,此時其度數大于 \(u\),與條件矛盾,得證

      考慮隨便取出一個點,若該點入度為 \(0\),那么它就是答案,答案肯定在其入點集合中,因為此時其入點集合中的點到集合外路徑 \(\le 2\),而該入點集合內又滿足結論,所以我們只需要在入點集合內找,那么每次隨機一個點就行了,這樣期望會把入點集合的大小減半,次數 \(n+\frac{n}{2}+\frac{n}{4}+\cdots=2n\)

      P11421 [清華集訓 2024] 最大匹配 2

      暴力怎么做,從左到右掃一遍,每一個顏色維護一個棧,能肖戰就肖戰,把最后剩下的再做一遍匹配即可,因為肯定是留下來越靠左的左括號和越靠右的右括號越優

      然后考慮單調修改,此時只有 \(\mathcal{O}(1)\) 個位置會受到影響,我們可以直接做一個人員調度,用線段樹維護區間加,區間最值以及線段樹上二分

      posted @ 2025-10-23 16:15  fqmzwmhx  閱讀(53)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产超碰人人做人人爱ⅴa| 承德县| 国产成人综合亚洲第一区| 浠水县| 亚洲欧美国产日韩天堂区| 国产高清在线男人的天堂| 国产成年码AV片在线观看| 亚洲av伊人久久综合性色| chinese极品人妻videos| 国产AV巨作丝袜秘书| 爆乳2把你榨干哦ova在线观看| 中日韩黄色基地一二三区| 在线高清免费不卡全码| 高清偷拍一区二区三区| 成人免费在线播放av| 美女裸体18禁免费网站| 精品国产伦理国产无遮挡| 国产人妻人伦精品婷婷| 99久久无码一区人妻a黑| 无码av中文一区二区三区桃花岛| 国产精品国产三级国快看| 亚洲男女羞羞无遮挡久久丫| 中文字幕精品亚洲无线码二区| 国产互换人妻xxxx69| 亚洲AV日韩精品久久久久| 国产av丝袜旗袍无码网站| 国产精品午夜福利资源| 国产精品国三级国产av| 日韩人妻少妇一区二区三区| 国产综合有码无码中文字幕| 亚洲熟妇自偷自拍另亚洲| 久久精品国产久精国产| 国产69久久精品成人看| 亚洲大尺度无码专区尤物| 少妇被无套内谢免费看| 少妇人妻偷人精品无码视频| 精品国产午夜福利在线观看| 中文字幕乱码中文乱码毛片| 日日碰狠狠躁久久躁综合小说| 亚洲一区二区日韩综合久久| 国产资源精品中文字幕|