| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我当时的想法是这样的:In Reply To:咋搞? Posted by:ACM06060 at 2007-10-30 14:59:17 用ans[i][j]表示从树i出发要到达树j,猴子每次能跳的最短距离的最大值。 然后以每个点为起点,做一个dijkstra,时间复杂度就是O(n*n*log(n)), 这样预处理之后,每次查询的复杂度就是O(1)的了。 每次做dijkstra的时候,初始化ans[i][j]=0(1<=j<=n),ans[i][i]=INF; 然后每次挑出一个最大的ans[i][j](1<=j<=n),进行松弛操作。假设挑出的 当前最大的的序号为key,则 ans[i][j]=max(ans[i][j],min(ans[i][key],dis[key][j])) . 我当时的想法就是这样的,可是比赛的时候写砸了。 不知道算法是对是错,还请高手指点。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator