poj3694 总结

与poj3352恰好相反,poj3352是求加多少边是桥不存在,poj3694是求加边后还剩多少桥。

利用poj3352的思想,我自己构思了一个算法,恰好总结了这几天学的东西。

分析题意,若加的边属于某边双连通分支,肯定不会减少桥的数目,而桥肯定是树边,它会将一棵子树与祖先割开,若加边(u,v),那么,u和v所在链将成为一个环,此环上必不存在桥,因此,每添加一条边,从u,v跑上lca将桥标记掉,并修改答案。

算法流程:

因为要求多次lca,干脆转成rmq,每次o(1)即可求出。

1、tarjan求桥,顺便将lca转成欧拉序列。

2、rmq初始化,用o(nlogn)时间,此后只需用o(1)时间求lca。

3、dfs求边双连通,并查集缩点。

4、在线回答问题,若u,v在同一集合,则无需修改答案,否则求出lca后,直接爬坡修改答案,顺便用并查集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值