首先恭贺vijos复活~~~撒花~~~~
又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。
那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少。
http://www.vijos.org/Problem_Show.asp?id=1119
额。。。这题是用最短路做的、、、就是建图的时候恶心了点,因为矩形的边可能不平行于坐标轴,在这里卡了很久。。。最后用向量积来判了。
因为很久没写了。就用了个邻接矩阵+dij,不过这题是满图,用链表也没有意义。。。可是就连最基本的dij都写错了T.T、、、错误有:
1.没有标记已经用过的点,死循环了。。。
2.外围循环用终点的dist小于初始极大值时就跳出。没有考虑到在更新过程中终点的dist也有可能被多次更新。。。
哎。。。最短路还得再复习。。。。
AC CODE:
program vijos_1119;
const maxn=maxlongint div 3;
var d:array[1..400,1..400] of real;
//============================================================================
function min(x,y:real):real;
begin
end;
//============================================================================
procedure setmap;
var i,j,g,h:longint;
begin
end;
//============================================================================
procedure walk(s,t:longint);
var i,now,next:longint;
begin
end;
//============================================================================
begin
end.