codevs 3731 寻找道路

这道题简直丧心病狂,对人的理解力要求我觉得很高,反正我是被坑了好几次才打出了样例,这是今天考的题,通过这个题我深切感受到自己经验的不足以及做题经验缺乏带来的严重后果

最重要的就是把简单的变难了;

就这道题来说吧,有这么几点:

逆向dfs在求解终点不能到大的道路的时候,要注意判断是否来过这个点,否则遇到了环就爆栈了

再判断不能走的点的时候最好新建一个数组,不能乱改,否则就会出很大差错,并且不能走的点就不要再新建一些奇怪的判断语句加到spfa里了,如果点不能走的话,直接把spfa开始的judge赋成true就行了,这样这个点就不会入队,即使别的点可以更新到这个点的距离,这个点也不会再往前走

还有一点就是最坑的,如果起点本来就是不能走的,就直接把起点的判断数组赋成true就行了,为此我折腾了半天,用了各种数组,发现最后还是一个spfa的原数组就都解决了,本来题是简洁的,思路是清楚的,代码是简单易懂的。不要自己给自己添麻烦,要多想想能不能再简单点,班主任这么对我说过,写的代码一定要越短,越简洁越好,越是长的代码就越容易出bug,越不容易调试,切记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值