标签:个人 font 状态 导致 没有 a* 拆点 处理 算法
我个人认为抽象图论挺帅的,一旦将问题抽象成点,跑图论算法就可以了。
我被抽象图论坑过很多回,这种题都是考试&&刷题好题,千万不能浪费。我记着有传送门,流水,棋子这几道抽象图论。
下次要是再看不出来是图论就要开个抽象图论总结了。。
这题我是一点思路都没有。
我们从分析状态入手吧。
问题在于,一个点只有一种状态么。这一点我在考场上想都没想,直接按一个考虑的。
然后我就不会怎么让由岐过来再让lilulu过来。来更新答案。
这样考虑会很复杂。
我们从每个点的状态考虑,如果点真的是点,那么确实只有一种状态,
但(x,y)并不是点,它是是由岐的位置。
那么就有两种状态,一种由岐在空中经过,一种在地上经过。
还有点到点的距离,比如要扔过去,一定要考虑拆开看贡献,不然直接就是n^2的无论空间还是时间。
比如说:a*L+b,应该说,看成往下走L个a步+b。
那么保证每个点只向旁边建边。
然后发现这样上下左右四个点都建可能会拐弯,那么就可以继续分裂状态来限制转移。
还有一个问题,停下来的时候怎么让利露露跑过来?
直接处理出每个点到利露露的最近距离就行了。
这应用到了:每个利露露只会经过一次,那么我在飞的时候其它每个点最近的距离不会变。
这样保证图论的图不变。
于是方法就出来了。不再赘述。
本题的难点仍然在于考虑建图。
抽象图论多做做吧。
想的时候许多认为不对的东西再花一秒问一下是不是不对。
好多性质在我第一眼看到题目的时候就被我认为是错的,然后就再也没想过它。导致想不到正解。
然后记着多思索,学长说网络流难看出来,因为网络流就是抽象图论。
二分图,网络流,拆点都算抽象图论。
标签:个人 font 状态 导致 没有 a* 拆点 处理 算法
原文地址:https://www.cnblogs.com/starsing/p/11468560.html