设为首页 加入收藏

TOP

BZOJ2125: 最短路(圆方树)(二)
2018-10-21 22:09:35 】 浏览:98
Tags:BZOJ2125: 短路 圆方
eof
(head)); for(int i = 1; i <= M; i++) { int x = read(), y = read(), z = read(); AddEdge(x, y, z); AddEdge(y, x, z); } Tarjan(1, 0); dis[1] = 0; deep[1] = 1; //for(int i = 1; i <= N; i++) printf("%d ", dfn[i]); puts(""); //for(int i = 1; i <= N; i++) printf("%d ", vec[i].size()); puts(""); //printf("%d\n", tot); dfs1(1, 0); dfs2(1, 1); //for(int i = 1; i <= tot; i++) printf("%d ", top[i]); puts(""); while(Q--) { int x = read(), y = read(); int lca = LCA(x, y); if(lca <= N) {printf("%d\n", dis[x] + dis[y] - (dis[lca] << 1)); continue;} int p1 = Jump(x, lca); int p2 = Jump(y, lca); int ans = dis[x] - dis[p1] + dis[y] - dis[p2] + min(abs(cdis[p2] - cdis[p1]), cdis[lca] - abs(cdis[p2] - cdis[p1])); printf("%d\n", ans); } return 0; }

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇EffectiveC++ 第6章 继承与面向对.. 下一篇2802:小游戏

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目