[考试]20151019图论

本文总结了算法竞赛中Transform变换序列、Graph最大子图等问题的解决思路,并详细解析了一道Dist最短路径问题,通过巧妙的方法优化了算法效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、前言

  今天说实话并不算太难的吧,没太多好说的。

 

2、Transform 变换序列

来源:BZOJ 1562 / NOI2009

链接:http://www.cnblogs.com/jinkun113/p/4893387.html

 

3、Graph 最大子图

来源:BZOJ 1093 / ZJOI2007

链接:http://www.cnblogs.com/jinkun113/p/4894712.html

 

4、Dist 最短路

大概题意:给定平面上的n 个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1 号点走到n 号点的最小费用。

总结:考试的是想方设法找到能够简便的方式进行判断,觉得应该是要从一些点去寻找突破口的,但是很久都没有发现,只能直接暴力连边去跑SPFA了。

题解:

  最短路是显然的,但是同样暴力连边会TLE也是显然的。这个时候我们要想个办法找到一些没有用的点删掉。假设当前存在两个点i,j,x距离为|xi-xj|。若存在一个点k,有xi<=xk<=xj,则从i到k然后从k到j,必定不会比从i到j差。为什么?因为还要考虑y方向的距离,如果|yi-yk|+|yk-yj|<=|xi-xk|+|xk-xj|,显然是要优于或等于从i到j的;如果|yi-yk|+|yk-yj|>|xi-xk|+|xk-xj|,那么和从i到j答案相同。

  所以在连边的时候,首先将所有点按x排序,相邻点相连;再按y排序,相邻点相连。接着跑O(n log n)的Dijkstra吧(别用SPFA作死)。

 

5、Planar 平面图判定

来源:BZOJ 1997 / HNOI2010

链接:http://www.cnblogs.com/jinkun113/p/4894499.html

转载于:https://www.cnblogs.com/jinkun113/p/4894731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值