Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

做N次最短路,然后O(NQ)查询需要注意的地方

Posted by 0909100811 at 2012-05-10 01:01:18 on Problem 4046 and last updated at 2012-05-10 01:02:35
    所谓的做N次最短路就是枚举每个店作为最高消费的点,
然后做单源最短路,求出这个点到其他点最短路,但是不能
经过比其消费更高的顶点。
    之后在查询的时候依次假设每个点作为最高消费点,然
后把两部分最短路以及这个点的消费加起来去更新结果,这
样查询就是O(NQ)的复杂度。
    但需要注意的是,假定我们用f[i][j]记录了以i为最高
消费点到j这个点的最短路,如果查询时两重循环先是for(i=0;i<Q;i++)
然后for(j=1;j<=N;j++)这样大概会TLE,但如果先将查询读
入,然后用for(i=1;i<=N;i++)for(j=0;j<Q;j++)这样做的话
就应该可以AC了,这个貌似是属于底层优化的范畴吧,就好
比for(i)for(j)去遍历f[i][j]与for(j)for(i)遍历f[i][j]
的效率是不一样的。

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator