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

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

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

      P14380 【MX-S9-T3】「LAOI-16」天外來物

      題意

      給一棵樹,每個點有編號,現在有一種樹 \(f(l,r)\),形如把編號在 \([l,r]\) 之間的點連成最小生成樹。

      然后給一些詢問,形如 \(q(L_i,R_i)\)。他想知道有多少種不同的 \(f(l,r)\),其中 \(L_i\le l\le r\le R_i\)

      \(f\) 相同,當且僅當其包含的點集相同。

      對于所有測試數據,保證:

      • \(1\le n,q\le 5\times 10^5\)
      • \(1\le L_i\le R_i\le n\)
      • \(1\le x,y\le n\),保證輸入的邊構成樹。

      題解

      考慮每種 \(f(l,r)\) 的性質,必然 \(l\) 不變的情況下 \(r\) 遞增,則 \(f(l,r)\) 的樹是不變小的。有點單調的感覺,所以考慮找到每種樹的分界點 \((l,r)\)。這里有個結論,就是這個 \(l,r\) 一定都是最小生成樹的葉子,證明顯然。

      然后考慮每個點作為這種 \(l\) 或者 \(r\) 的最遠擴展距離。這里我們可以這么想:對于 \(l\) 來說,如果把 \(l\) 當成根,那么必須經過 \(l\) 當且僅當 \(l\) 有至少 \(2\) 個子樹有點,所以我們把這個東西放到 \(dfs\) 序上就是區間最大值了,枚舉子樹找到第二大就是答案。從小到大掃描每個點即可,\(r\) 的做法類似。

      接下來考慮計算答案,我們設每個點能拓展的左右端點為 \(L_i,R_i\),詢問區間為 \(l,r\),我們要找的兩個葉子從小到大為為 \(x,y\)。那么我們要求的點對滿足如下限制:

      \[l\le x\le y\le r\\ L_y\le x\le y\le R_x \]

      考慮掃描 \(y\),用線段樹維護。具體來說線段樹每個節點維護一個值 \(w_i\) 表示以 \(i\) 為左端點,右端點不超過 \(y\) 的樹種類。我們維護一個 \(tag_i=[R_i\ge y]\) 那么一次掃描的增加會使得 \([l_y,y]\) 中的點變為 \(w_i+tag_i\)。發現 \(tag_i\) 只會改變一次,所以可以暴力修改 \(tag_i\),詢問就是求區間和,線段樹上每個節點維護 \(sumw,sumtag\) 就可以了。

      posted @ 2025-11-06 10:13  NeeDna  閱讀(6)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲熟妇色自偷自拍另类| 一本大道久久香蕉成人网| 91中文字幕一区在线| www射我里面在线观看| 三亚市| 亚洲AV无码不卡在线播放| 老熟女重囗味hdxx69| 亚洲AV无码专区亚洲AV桃 | 伊人精品久久久大香线蕉| 人妻教师痴汉电车波多野结衣| 国产精品蜜臀av在线一区| 天天做天天爱夜夜爽女人爽| 国产成人欧美一区二区三区在线| 亚洲av高清一区二区三| 91孕妇精品一区二区三区| 乱老年女人伦免费视频| 国产果冻豆传媒麻婆| 亚洲av一本二本三本| 欧洲精品色在线观看| 午夜福利在线永久视频| 亚洲ΑV久久久噜噜噜噜噜| 巴彦县| 18禁亚洲深夜福利人口| 国产卡一卡二卡三免费入口 | 午夜免费福利小电影| 国产色a在线观看| 偷拍专区一区二区三区| 国产人妻精品无码av在线| 玩两个丰满老熟女久久网| 内射无套内射国产精品视频| 亚洲经典在线中文字幕| www久久只有这里有精品| 五月天免费中文字幕av| 国产激情第一区二区三区| 丁香婷婷在线观看| 久久综合伊人77777| 欧美影院成年免费版| 天堂va蜜桃一区二区三区| 国产成人精品区一区二区| 久久天天躁狠狠躁夜夜2020老熟妇| 国产91小视频在线观看|