http://acm.hdu.edu.cn/showproblem.php?pid=3686 我要把这题记录下来. 一直wa. 自己生成数据都是AC的.现在还是wa.留坑. 我感觉我现在倒下去床上就能睡着了. 不知道是我的LCA错了,还是tarjan #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <algorithm> #incl…
Problem Description City C is really a nightmare of all drivers for its traffic jams. To solve the traffic problem, the mayor plans to build a RTQS (Real Time Query System) to monitor all traffic situations. City C is made up of N crossings and M roa…
HDU 3686 Traffic Real Time Query System 题目大意 给一个N个点M条边的无向图,然后有Q个询问X,Y,问第X边到第Y边必需要经过的点有多少个. solution 显然园方树+tarjan求LCA,然后求两条边之间的点 必经的点的数量就是圆点的数量,然后进行分类讨论 若\(LCA\)为圆点: 那么其中一个点到\(LCA\)的圆点数量为\((deep[x] - deep[lca])/2\),因为\(LCA\)为圆点被算了两遍,所以要-1 若\(LCA\)为方点:…
题意 ​ 给定一张 \(n\) 个点 \(m\) 条边的无向图,\(q\) 次询问,每次询问两边之间的必经之点个数. 思路 ​ 求两点之间必经之边的个数用的是边双缩点,再求树上距离.而对比边双和点双之后,我们不难发现点和边之间的对应关系,边双分量和点双分量的性质很多都是对称的. 边双 点双 两点之间至少有两条不共边的路径 两边之间至少有两条不共点的路径 边双间由桥边连接 点双内没有割点 边双间由桥边连接 点双间由割点连接 ​ 另外,一个点双也是一个特殊的边双,就像一个点仙人掌是一个特殊的边仙人掌…
这题做了几个小时,基本思路肯定是求两点路径中的割点数目,思路是tarjan缩点,然后以割点和连通块作为新节点见图.转化为lca求解.结合点——双连通分量与LCA. /* 3686 */ #include <iostream> #include <sstream> #include <string> #include <map> #include <queue> #include <set> #include <stack>…
题目内容 洛谷链接 给出一个\(n\)个节点,\(m\)条边的无向图和两个节点\(s\)和\(t\),问这两个节点的路径中有几个点必须经过. 输入格式 第一行是\(n\)和\(m\). 接下来\(m\)行,给出两个数表示这两个节点之间存在一条边. 接下来一行一个整数\(Q\),表示询问个数. 接下来\(Q\)行,每行两个整数\(s\)和\(t\)(\(s\not= t\)). 数据范围 \(0<n\le 10000,0<m\le 100000,0<Q\le 10000,0<s,t\…
逃不掉的路 CH Round #24 - 三体杯 Round #1 题目描述 现代社会,路是必不可少的.任意两个城镇都有路相连,而且往往不止一条.但有些路连年被各种XXOO,走着很不爽.按理说条条大路通罗马,大不了绕行其他路呗--可小撸却发现:从a城到b城不管怎么走,总有一些逃不掉的必经之路. 他想请你计算一下,a到b的所有路径中,有几条路是逃不掉的? 输入格式 第一行是n和m,用空格隔开.接下来m行,每行两个整数x和y,用空格隔开,表示x城和y城之间有一条长为1的双向路.第m+2行是q.接下来…
题目 City C is really a nightmare of all drivers for its traffic jams. To solve the traffic problem, the mayor plans to build a RTQS (Real Time Query System) to monitor all traffic situations. City C is made up of N crossings and M roads, and each road…
题目描述 City C is really a nightmare of all drivers for its traffic jams. To solve the traffic problem, the mayor plans to build a RTQS (Real Time Query System) to monitor all traffic situations. City C is made up of N crossings and M roads, and each ro…
https://vjudge.net/problem/HDU-3686 点双啊,就是在求割顶的时候,另外用一个栈来存一些边 在遍历u点出发的边时,遇到树边或反向边(u,v)就把此边加入栈(可能要记一下边的编号)(但是,如果(u,v)是反过来看的反向边(此时dfn[v]>=dfn[u]:实际反向边应该为(v,u))或者反过来的树边(此时k==(last^1))就不能加入) 遇到一个割点,就多一个点双(不考虑因为(fa<0&&child==1)的特判而去掉的割点) 计算(u,v)中…