网络流。。。。经典模型。。。HDU2732 && PKU 2711

来源:互联网 发布:vb可视化编程的步骤 编辑:程序博客网 时间:2024/05/18 16:17

http://acm.hdu.edu.cn/showproblem.php?pid=2732

题意:一个矩阵里有n*m个方格,有些方格中有l长的柱子,没相邻的两个柱子间的间距是1m,有些柱子上面有蜥蜴,现在你的目的是要使这些蜥蜴尽可能多的跳出到方格以为,假设蜥蜴每次能跳d远,但是它每离开一根柱子,柱子的高度就会降低1m,问最多能有多少只跳不出去。。。

一看题第一反应就是最大流,把每个有柱子的方格node拆点为node1,node2,两点之间权值为l,在d范围内的两个点连线,从一个点的node2连向另一点的node1,流量为Inf,然后建立源点s,汇点t 源点与有蜥蜴的点连起来,t会能够跳到外面的点连起来。

一开始一直wa。。。wa的郁闷之极。。。wa的好无语。。。一直找不到原因啊。。。。。后来实在没办法了。。。在sha崽大牛那里借了代码对拍。。我才发现,我犯了两个错误,表示强烈BS自己。。。

错误1 : 在输出结果的时候没有分清单复数,lizards 与lizard,然后改了 还是wa。。。郁闷之极。。。。。之后还是怀疑算法有误,然后继续拍代码,开始怀疑自己在建图的时候用double比较可能有精度的损失,然后造成误差。。但是怎么想都还是不会。。。于是放弃了这个怀疑,又还是怀疑sap的模板,这个模板我已经用了AC了很多题。。不可能会有错。。继续拍。。拍到最后才发现又是输出的错误。。

错误2:我还是把英语的单复数写错,在只有一个的时候 把was写成了were!!!

哎。。。这样的错误浪费了很多时间,贡献了。好几次wa。。。。表示BS自己。。。强烈无语。。。

代码: