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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ1787 [Ahoi2008]Meet 紧急集合 LCA

發(fā)布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ1787 [Ahoi2008]Meet 紧急集合 LCA 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎訪問~原文出處——博客園-zhouzhendong

去博客園看該題解


題目傳送門 - BZOJ1787


題意概括

  有一棵節(jié)點(diǎn)為n個(n≤500000)的樹。接下來m次詢問(m≤500000),每次給出3個點(diǎn) a,b,c ,現(xiàn)在讓你求一個點(diǎn) p ,使得 dis(p,a) + dis(p,b) + dis(p,c) 最小。

  輸出 p 和?dis(p,a) + dis(p,b) + dis(p,c)。


?

題解

  分別求3個LCA。

  學(xué)習(xí)LCA ?-> 傳送門

  有兩個一樣的,那么另外一個就是答案。


?

代碼

#pragma comment(linker,"/STACK:1024000000,1024000000") #include <cstring> #include <algorithm> #include <cstdio> #include <cmath> #include <cstdlib> using namespace std; const int N=500000+5,M=N*2; struct Gragh{int cnt,y[M],nxt[M],fst[N];void set(){cnt=0;memset(fst,0,sizeof fst);}void add(int a,int b){y[++cnt]=b,nxt[cnt]=fst[a],fst[a]=cnt;} }g; int n,m,depth[N],anst[N][20]; void dfs(int prep,int rt){depth[rt]=depth[anst[rt][0]=prep]+1;for (int i=1;i<20;i++)anst[rt][i]=anst[anst[rt][i-1]][i-1];for (int i=g.fst[rt];i;i=g.nxt[i])if (g.y[i]!=prep)dfs(rt,g.y[i]); } int LCA(int a,int b){if (depth[a]>depth[b])swap(a,b);for (int j=depth[b]-depth[a],i=0;j>0;j>>=1,i++)if (j&1)b=anst[b][i];if (a==b)return a;for (int i=19;i>=0;i--)if (anst[a][i]!=anst[b][i])a=anst[a][i],b=anst[b][i];return anst[a][0]; } int main(){scanf("%d%d",&n,&m);g.set();for (int i=1,a,b;i<n;i++){scanf("%d%d",&a,&b);g.add(a,b);g.add(b,a);}depth[0]=-1;memset(anst,0,sizeof anst);dfs(0,1);for (int i=1,a,b,c,ans,pos;i<=m;i++){scanf("%d%d%d",&a,&b,&c);int p1=LCA(a,b),p2=LCA(a,c),p3=LCA(b,c);if (p1==p2)pos=p3;else if (p1==p3)pos=p2;elsepos=p1;int q1=LCA(pos,a),q2=LCA(pos,b),q3=LCA(pos,c);ans=depth[a]+depth[b]+depth[c]+depth[pos]*3-depth[q1]*2-depth[q2]*2-depth[q3]*2;printf("%d %d\n",pos,ans);}return 0; }

  

轉(zhuǎn)載于:https://www.cnblogs.com/zhouzhendong/p/BZOJ1787.html

總結(jié)

以上是生活随笔為你收集整理的BZOJ1787 [Ahoi2008]Meet 紧急集合 LCA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产人成一区二区三区影院 | 五月婷婷网 | 91嫩草入口 | 久久人精品 | 欧美手机看片 | 亚洲狠狠爱 | 久久精品动漫 | 人妻互换 综合 | 国产美女www | 亚洲国产伊人 | 鲁大师私人影院在线观看 | 成人av一区二区三区在线观看 | 极品探花在线观看 | 爱草在线 | 亚洲av无码国产精品麻豆天美 | 国产精品一区免费观看 | 日韩欧美中文字幕在线视频 | 蜜臀av性久久久久蜜臀av麻豆 | 日韩美女做爰高潮免费 | 一区二区在线播放视频 | www.人人草 | 欧美午夜理伦三级在线观看 | 在线视频第一页 | av黄色一级片 | 靠逼在线观看 | 欧美自拍偷拍一区 | 7777在线视频 | 欧美日本中文字幕 | 国产成人精品一区二区三区无码熬 | 天天天天天天天天干 | 中文字幕免费在线观看 | 中文字幕一区久久 | 欧美顶级少妇做爰hd | 极品尤物一区二区 | 日韩欧美中字 | 欧美xxxxx高潮喷水麻豆 | 国产系列精品av | 欧美激情在线一区 | 97青草 | 两根大肉大捧一进一出好爽视频 | 18禁网站免费无遮挡无码中文 | av最新在线 | 亚洲性网| 爱插美女网 | 亚州激情视频 | 国产欧美日本 | 久久久久国产精品国产 | 青青草在线免费观看 | 欧美日韩一区二区三区在线电影 | 欧美视频不卡 | av秋霞 | 天天综合久久 | 老师用丝袜脚帮我脚交 | av免费在线观看网站 | 久草免费资源站 | 色多多导航 | 92久久精品一区二区 | 偷拍第一页 | 巨乳女教师的诱惑 | 亚洲欧美国产日韩精品 | 97超碰人人澡人人爱学生 | 午夜精品久久久 | 3级av| 欧美大片一区二区 | www.久久.com | 精品国产乱码久久久久久鸭王1 | 一级片网址 | 国产精品无码一区二区三区免费 | 日本一区二区三区电影在线观看 | 欧美日韩国产一区二区 | 人成在线 | www.4hu95.com四虎| 久久精品大全 | 国产精品久久9 | 日韩成人精品 | 国产美女三级无套内谢 | 欧美日韩中文字幕在线 | 农夫色综合 | 91在线观 | 国产日韩精品一区二区三区在线 | 日本xxxx高清 | 黑人巨大精品人妻一区二区 | 国模叶桐尿喷337p人体 | 国产成人自拍一区 | 欧美日韩一区精品 | 国产做受网站 | 国产1区在线观看 | 精品人妻无码一区二区性色 | 国产精品久久久久久久久久久久久久久久久 | 激情五月色综合国产精品 | 欧美精品入口蜜桃 | 欧美三级中文字幕 | 日本三级网站在线观看 | 国产特级av | 亚洲码国产精品高潮在线 | 亚洲一区二区视频在线 | 国产日韩欧美激情 | 激情文学欧美 | 天天射,天天干 |