题目:http://www.nocow.cn/index.php/Translate:USACO/butter
题目大意是找出一个牧场,使得奶牛到这个牧场的路径和最小。
最原始的想法是计算出这些牧场内部之间的最短路径,根据map[i][j] = min( map[i][j], map[i][k] + map[k][j]),然后所有奶牛到牧场路径和为 {求和cube[j] * map[i][j],j 从 1~MAX};(cube[j] 指第j个牧场的奶牛数)。因此代码如下:
但是运行的时候居然超时了,分析了一下,我以为800的数据量很小,但是里面有个三重循环,也就是时间复杂度为o(800^3)。差不多在5千万左右,而一秒能够执行的代码行数为1千万行左右,因此确实超时了。
至于怎么优化,现在还没想好。晚上再好好解决吧,感觉基础知识还不够扎实。