{"id":90,"date":"2025-01-11T23:22:53","date_gmt":"2025-01-11T15:22:53","guid":{"rendered":"http:\/\/150.230.63.147\/blog\/?p=90"},"modified":"2025-01-11T23:22:53","modified_gmt":"2025-01-11T15:22:53","slug":"e-xenia-and-tree-%e8%a7%a3%e6%9e%90%e6%80%9d%e7%b6%ad%e3%80%81%e9%87%8d%e5%bf%83%e5%89%96%e5%88%86","status":"publish","type":"post","link":"https:\/\/blog.seekrealthing.net\/blog\/?p=90","title":{"rendered":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)"},"content":{"rendered":"\n<div class=\"wp-block-jetpack-markdown\"><h1>Codeforce 342 E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)<\/h1>\n<p>\u4eca\u5929\u6211\u5011\u4f86\u770b\u770bCF342E\n<a href=\"https:\/\/codeforces.com\/problemset\/problem\/342\/E\">\u984c\u76ee\u9023\u7d50<\/a><\/p>\n<blockquote>\n<p><strong>\u984c\u76ee<\/strong>\n\u7d66\u4f60\u4e00\u68f5\u6a39\uff0c\u6709\u5169\u7a2e\u64cd\u4f5c\uff0c\u628a\u67d0\u9ede\u6a19\u6210\u7d05\u8272\u6216\u8005\u67e5\u8a62\u96e2\u67d0\u9ede\u6700\u8fd1\u7684\u7d05\u9ede\u6709\u591a\u9060\u3002<\/p>\n<\/blockquote>\n<h3>\u524d\u8a00<\/h3>\n<p>\u9019\u984c\u6211\u662f\u7576\u4f5c\u5b78\u7fd2\u91cd\u5fc3\u5256\u5206\u7684\u7fd2\u984c\u770b\u5f85\u7684\uff0c\u6700\u8a73\u7d30\u7684\u7248\u672c\u8acb\u770b<a href=\"https:\/\/zhanghuimeng.github.io\/post\/centroid-decomposition-summaary-and-example\/\">\u6559\u5b78\u6587<\/a><\/p>\n<h3>\u60f3\u6cd5<\/h3>\n<p>\u6bcf\u5169\u500b\u6a39\u4e0a\u7684\u9ede\uff0c\u5176\u91cd\u5fc3\u5256\u5206\u6a39(CD\u6a39)\u4e0a\u7684$LCA$\u4e00\u5b9a\u5728\u5176\u6700\u77ed\u8def\u5f91\u4e0a\u3002\u56e0\u6b64\u7576\u6211\u5011\u628a\u9ede$v$\u5857\u6210\u7d05\u8272\u6642\uff0c\u6211\u5011\u53ea\u9700\u8981\u66f4\u6539CD\u6a39\u4e0a$v$\u7684\u7956\u5148\u5230\u6700\u8fd1\u7684\u7d05\u9ede\u7684\u8ddd\u96e2\u5c31\u597d\u3002\n\u4ee4$ans[v]$\u4ee3\u8868$v$\u5b50\u6a39(CD\u6a39\u4e0a\u7684\u5b50\u6a39)\u4e0a\u5230\u96e2$v$\u6700\u8fd1\u7684\u7d05\u9ede\u7684\u8ddd\u96e2\u3002\u5047\u8a2d\u628a$v$\u5857\u8272\uff0c$j$\u70ba$v$\u5728CD\u6a39\u4e0a\u7684\u67d0\u500b\u7956\u5148\uff0c$ans[j]=min(ans[j],dist(v,j))$\uff0c$dist(v,j)$\u4ee3\u8868\u5728\u539f\u5716\u4e0a$v,j$\u9593\u7684\u6700\u77ed\u8ddd\u96e2\uff0c\u6211\u5011\u53ef\u4ee5\u7528\u8001\u65b9\u6cd5:$dist(v,j)=dep[v]+dep[j]-2\\times dep[lca(v,j)]$\uff0c$dep[v]$\u662f$v$\u5728\u539f\u5716\u7684\u6df1\u5ea6\u3002<\/p>\n<p>\u800c\u8981\u641c\u5c0b\u96e2$v$\u6700\u8fd1\u7684\u7d05\u9ede\u8ddd\u96e2\u6642\uff0c\u7531\u65bc\u5169\u9ede\u9593\u7684\u6700\u77ed\u8ddd\u96e2\u4e0a\u4e00\u5b9a\u6709CD\u6a39\u4e0a$v$\u7684\u7956\u5148\uff0c\u56e0\u6b64\u6211\u5011\u904d\u6b77\u90a3\u4e9b\u7956\u5148(\u9ede$j$)\uff0c\u627e$dist(v,j)+ans[j]$\u7684\u6700\u5c0f\u503c\u3002<\/p>\n<h3>\u7a0b\u5f0f\u78bc:<\/h3>\n<pre><code class=\"language-cpp=\">const int _n=1e5+10;\nint t,n,m,aa,bb,vv,ans[_n];\nVI G[_n];\nint sz[_n],cd_fa[_n];\nbool del[_n];\nvoid dfsSz(int v,int faa){\n  sz[v]=1;\n  rep(i,0,SZ(G[v]))if(G[v][i]!=faa and !del[G[v][i]])dfsSz(G[v][i],v),sz[v]+=sz[G[v][i]];\n}\nint get_centroid(int v,int faa,int cnt){\n  rep(i,0,SZ(G[v]))if(G[v][i]!=faa and !del[G[v][i]] and sz[G[v][i]]&gt;cnt\/2)\n    return get_centroid(G[v][i],v,cnt);\n  return v;\n}\nvoid centroid_decomposition(int v,int faa){\n  dfsSz(v,faa);int centroid=get_centroid(v,faa,sz[v]);\n  cd_fa[centroid]=faa,del[centroid]=1;\n  rep(i,0,SZ(G[centroid]))if(G[centroid][i]!=faa and !del[G[centroid][i]])\n    centroid_decomposition(G[centroid][i],centroid);\n}\nconst int MAXB=18;\nint dep[_n],fa[_n][MAXB];\nvoid dfs(int v,int faa,int d){\n  dep[v]=d;fa[v][0]=faa;\n  rep(i,0,SZ(G[v]))if(faa!=G[v][i])dfs(G[v][i],v,d+1);\n}\nvoid bfa(){\n  rep(j,1,MAXB)rep(i,1,n+1)if(~fa[i][j-1])\n    fa[i][j]=fa[fa[i][j-1]][j-1];\n}\nint lca(int a,int b){\n  if(dep[a]&lt;dep[b])swap(a,b);\n  per(j,0,MAXB)if(~fa[a][j] and dep[fa[a][j]]&gt;=dep[b])a=fa[a][j];\n  if(a==b)return a;\n  per(j,0,MAXB)if(~fa[a][j] and fa[a][j]!=fa[b][j])a=fa[a][j],b=fa[b][j];\n  return fa[a][0];\n}\nvoid update(int vv){\n  int b=vv;\n  while(b!=-1){\n    int l=lca(vv,b);\n    ans[b]=min(ans[b],dep[vv]+dep[b]-2*dep[l]);\n    b=cd_fa[b];\n  }\n}\nmain(void) {ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);\n  cin&gt;&gt;n&gt;&gt;m;rep(i,0,n-1){cin&gt;&gt;aa&gt;&gt;bb;G[aa].pb(bb),G[bb].pb(aa);}\n  dfs(1,-1,0);rep(i,1,n+1)rep(j,1,MAXB)fa[i][j]=-1; bfa();\n  centroid_decomposition(1,-1);rep(i,1,n+1)ans[i]=1e5;\n  update(1);\n  while(m--){\n    cin&gt;&gt;t&gt;&gt;vv;\n    if(t==1)update(vv);\n    else{\n      int minn=1e9,b=vv;\n      while(b!=-1){\n        int l=lca(vv,b);\n        minn=min(minn,ans[b]+dep[b]+dep[vv]-2*dep[l]);\n        b=cd_fa[b];\n      }cout&lt;&lt;minn&lt;&lt;'\\n';\n    }\n  }\n  return 0;\n}\n<\/code><\/pre>\n<p>\u6a19\u982d\u3001\u6a21\u677f\u8acb\u9edeSubmission\u770b\n<a href=\"https:\/\/codeforces.com\/contest\/342\/submission\/91884169\">Submission<\/a><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[3],"tags":[10,9,8,32],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-ojcode","tag-codeforce","tag-ojcode","tag-8","tag-32"],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\" \/>\n<meta property=\"og:site_name\" content=\"Logic Formatting\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-11T15:22:53+00:00\" \/>\n<meta name=\"author\" content=\"jeff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005:\" \/>\n\t<meta name=\"twitter:data1\" content=\"jeff\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9810\u4f30\u95b1\u8b80\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\"},\"author\":{\"name\":\"jeff\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454\"},\"headline\":\"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)\",\"datePublished\":\"2025-01-11T15:22:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\"},\"wordCount\":65,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\"},\"keywords\":[\"codeforce\",\"ojcode\",\"\u601d\u7dad\",\"\u91cd\u5fc3\u5256\u5206\"],\"articleSection\":[\"ojcode\"],\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.seekrealthing.net\/blog\/?p=90#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\",\"name\":\"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting\",\"isPartOf\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#website\"},\"datePublished\":\"2025-01-11T15:22:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.seekrealthing.net\/blog\/?p=90\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/?p=90#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\/\/blog.seekrealthing.net\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#website\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/\",\"name\":\"Logic Formatting\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.seekrealthing.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-TW\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#organization\",\"name\":\"Logic Formatting\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png\",\"contentUrl\":\"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Logic Formatting\"},\"image\":{\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454\",\"name\":\"jeff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g\",\"caption\":\"jeff\"},\"sameAs\":[\"http:\/\/150.230.63.147\/blog\"],\"url\":\"https:\/\/blog.seekrealthing.net\/blog\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.seekrealthing.net\/blog\/?p=90","og_locale":"zh_TW","og_type":"article","og_title":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting","og_url":"https:\/\/blog.seekrealthing.net\/blog\/?p=90","og_site_name":"Logic Formatting","article_published_time":"2025-01-11T15:22:53+00:00","author":"jeff","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005:":"jeff","\u9810\u4f30\u95b1\u8b80\u6642\u9593":"2 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90#article","isPartOf":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90"},"author":{"name":"jeff","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454"},"headline":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)","datePublished":"2025-01-11T15:22:53+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90"},"wordCount":65,"commentCount":0,"publisher":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization"},"keywords":["codeforce","ojcode","\u601d\u7dad","\u91cd\u5fc3\u5256\u5206"],"articleSection":["ojcode"],"inLanguage":"zh-TW","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.seekrealthing.net\/blog\/?p=90#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90","url":"https:\/\/blog.seekrealthing.net\/blog\/?p=90","name":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206) - Logic Formatting","isPartOf":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#website"},"datePublished":"2025-01-11T15:22:53+00:00","breadcrumb":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.seekrealthing.net\/blog\/?p=90"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.seekrealthing.net\/blog\/?p=90#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/blog.seekrealthing.net\/blog"},{"@type":"ListItem","position":2,"name":"E. Xenia and Tree \u89e3\u6790(\u601d\u7dad\u3001\u91cd\u5fc3\u5256\u5206)"}]},{"@type":"WebSite","@id":"https:\/\/blog.seekrealthing.net\/blog\/#website","url":"https:\/\/blog.seekrealthing.net\/blog\/","name":"Logic Formatting","description":"","publisher":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.seekrealthing.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-TW"},{"@type":"Organization","@id":"https:\/\/blog.seekrealthing.net\/blog\/#organization","name":"Logic Formatting","url":"https:\/\/blog.seekrealthing.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png","contentUrl":"https:\/\/blog.seekrealthing.net\/blog\/wp-content\/uploads\/2025\/02\/android-chrome-512x512-1.png","width":512,"height":512,"caption":"Logic Formatting"},"image":{"@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/233e80a0fee3d4706f067f2e88c0b454","name":"jeff","image":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/blog.seekrealthing.net\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f9b571b28c252728386f0002b35d9cb9a9028f740b0f9ca5ad678e7eb21c4857?s=96&d=mm&r=g","caption":"jeff"},"sameAs":["http:\/\/150.230.63.147\/blog"],"url":"https:\/\/blog.seekrealthing.net\/blog\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=90"}],"version-history":[{"count":1,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/90\/revisions"}],"predecessor-version":[{"id":91,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/90\/revisions\/91"}],"wp:attachment":[{"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.seekrealthing.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}