poj1860-Currency Exchange

第一个单源最短路径算法,因为题目可能存在负边,所以用Bellman Ford算法,原始Bellman Ford可以用来求负环,这题需要改进一下用来求正环。

前几次试验一直被图的数据结构所困扰:一开始采用链表,因为BF算法要遍历所有边,而链表对边的遍历占速度优势;后来发现链表操作太繁琐,总共100x100的矩阵,用数组也行,于是想用数组;后来参考了一下大牛们的代码,发现其实用一维数组就能解决问题了。

数据结构:用value[]储存每个点(exchange point)经过exchange操作之后可以转换得到的值,初值统设为0(求负环相应设为正无穷)。rate[][]和com[][]用来储存汇率和回扣。

算法:对原始的Bellman Ford算法进行小改进即可。

另外从discuss中可以知道需要注意精度。

以下是AC代码:Memory:308K,Time:0MS

Code
END
posted @ 2009-05-19 16:40  MyShowTime  阅读(521)  评论(0编辑  收藏  举报