日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Cf Edu #47 F】Dominant Indices(长链剖分)

發(fā)布時間:2024/10/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Cf Edu #47 F】Dominant Indices(长链剖分) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

要求每個點子樹中節(jié)點最多的層數(shù),一個通常的思路是樹上啟發(fā)式合并,對于每一個點,保留它的重兒子的貢獻,暴力掃輕兒子將他們的貢獻合并到重兒子里來。

參考重鏈剖分,由于一個點向上最多只有$log$條輕邊,故每個點最多被合并$log$次。但這不是這題想說的。

由于我們只保留以深度為下標的信息,重鏈剖分就會多算,以此引出長鏈剖分,權(quán)且作為一個模板來學習。

長鏈剖分時,每個點以最深的兒子作為長兒子,其余為短兒子。

每個點$O(1)$繼承長兒子的信息,將短兒子的信息合并上來。每個點只有作為短兒子時才保留以它為鏈頭的一條長鏈上的信息,空間復雜度為$O(鏈長)$。

顯然,每次短兒子被合并之后就不會再被訪問到了,因為它合并到了一條比它更長的鏈,而所有的長鏈都不相交,每條鏈都以$O(鏈長)$被合并掉,故總復雜度是$O(n)$的。

這道題只要維護深度為$i$的節(jié)點的數(shù)量,取最大值即可。

?

$\bigodot$技巧&套路:

  • 以深度為下標的信息,可以考慮長鏈剖分。
  • 通常信息的合并,DSU on tree就可以了。
1 #include <cstdio> 2 #include <vector> 3 4 const int N = 1000005; 5 6 int n, hig[N], res[N], son[N], dep[N]; 7 std::vector<int> g[N]; 8 9 int yun, las[N], to[N << 1], pre[N << 1]; 10 inline void Add(int a, int b) { 11 to[++yun] = b; pre[yun] = las[a]; las[a] = yun; 12 } 13 14 void Dfs(int x, int Fa) { 15 for (int i = las[x]; i; i = pre[i]) if (to[i] != Fa) { 16 Dfs(to[i], x); 17 if (hig[x] < hig[to[i]] + 1) { 18 hig[x] = hig[to[i]] + 1; 19 son[x] = to[i]; 20 } 21 } 22 if (!son[x]) { 23 g[x].push_back(1); return; 24 } 25 std::swap(g[x], g[son[x]]); 26 res[x] = res[son[x]]; 27 for (int i = las[x]; i; i = pre[i]) if (to[i] != Fa) { 28 if (son[x] != to[i]) { 29 int nx = (int)g[x].size(), nt = (int)g[to[i]].size(); 30 for (int j = 0; j < nt; ++j) { 31 g[x][nx - nt + j] += g[to[i]][j]; 32 if (g[x][nx - nt + j] >= g[x][res[x]]) res[x] = nx - nt + j; 33 } 34 } 35 } 36 g[x].push_back(1); 37 if (g[x][res[x]] == 1) res[x] = (int)g[x].size() - 1; 38 } 39 40 int main() { 41 scanf("%d", &n); 42 for (int i = 1, x, y; i < n; ++i) { 43 scanf("%d%d", &x, &y); 44 Add(x, y); Add(y, x); 45 } 46 Dfs(1, 0); 47 for (int i = 1; i <= n; ++i) { 48 printf("%d\n", hig[i] - res[i]); 49 } 50 51 return 0; 52 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/Dance-Of-Faith/p/9322458.html

總結(jié)

以上是生活随笔為你收集整理的【Cf Edu #47 F】Dominant Indices(长链剖分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: avtt2015| 国产精品2020 | 天天干影院| 精品国产欧美一区二区 | 日本精品人妻无码免费大全 | 丰满人妻一区二区三区53号 | 人妻精品无码一区二区 | 风间ゆみ大战黑人 | a级片在线| 亚洲成人三区 | 日韩激情毛片 | 99久国产| 免费的三级网站 | 亚欧成人在线 | 成人h视频 | 日韩中文字幕在线看 | 99re视频这里只有精品 | 天堂在线资源库 | 天天操天天操 | 国产精品原创 | 精品人妻一区二区三区四区在线 | 欧美一级日韩一级 | 3d成人动漫在线观看 | 国产成人精品一区二区三区免费 | 亚洲开心网| 国产精品久久久久久久久久久免费看 | 窝窝午夜影院 | 国产精品成人无码免费 | 午夜欧美精品久久久久久久 | 在线国产小视频 | 久久婷婷五月综合 | 欧美一区二区三区日韩 | 免费一区二区 | 亚洲精选在线 | 不卡在线视频 | 色姑娘久 | 成人在线观看一区 | 亚洲资源在线 | 波多野结衣视频在线观看 | 成人免费视频国产在线观看 | 亚州黄色 | 日韩视频在线观看一区二区 | 在线观看的av | 91手机在线视频 | 国产亚洲女人久久久久毛片 | 国外亚洲成av人片在线观看 | 日韩久操 | 丰满大乳露双乳呻吟 | 久久综合色88 | 色吧在线观看 | 欧美伊人 | 操夜夜| 亚洲自啪 | 欧美黄网在线观看 | 动漫美女被吸乳奶动漫视频 | 色婷婷av一区二区三区之红樱桃 | 精品久久久久久久久久久久久久久久久 | 99热在线观看免费精品 | 精品视频999 | av成人资源| 国产精品区二区三区日本 | 91伦理视频 | 亚洲暴爽 | 一区二区高潮 | 久久久青 | 日本美女裸体视频 | 性生活视频网站 | 亚洲午夜av在线 | 6080亚洲精品一区二区 | 午夜少妇久久久久久久久 | 91精品人妻一区二区三区四区 | jizz成人 | 亚洲欧洲综合 | 99性视频| 免费精品视频 | 中文字幕一级二级三级 | 亚州精品视频 | 波多野吉衣一二三区乱码 | 亚洲精品综合在线 | 中国美女洗澡免费看网站 | 动漫精品一区一码二码三码四码 | 美女网站免费观看 | 欧美性视频在线 | 操操操日日日 | 在线成人免费电影 | 性欧美视频 | 在线高清观看免费观看 | 国产亚洲精品久 | 性做久久久久久久免费看 | 奇米影视在线观看 | 亚洲欧美高清视频 | 男人天堂资源 | 一级空姐毛片 | 成年人免费在线视频 | 性大片潘金莲裸体 | 成人片网址 | 不卡视频一区 | 久久99国产精品一区 | 91红桃视频|