POJ3271:Lilypad Pond
——problem:贝茜要从只能在荷叶上跳“日”字,问从起点到终点最少要加多少个荷叶,有多少种方案
——solution:最短路
——url:http://poj.org/problem?id=3271
刚拿到题想直接最短路,但是发现在计数上会出现问题。
如下图:
2222122
2202224
3222122
从3到4可以通过上面的1,也可以通过下面的1,这样会认为有两条最短路,但实际上摆放方式只有一种。
为了解决这个问题,我们需要重新构图:
将所有【空地】格看做点,如果空地i和空地j之间能在不添加荷叶的情况下互达,连一条无向边
然后添加【原起点格和原起点能够在不添加荷叶的情况下到达的格子的集合】作为新的起点,终点处理方法同。
空地点的权值赋1,起点终点权值赋0。
在新图中求最短路。