摘要: 题意也就是求源点到其他个点的最短距离和其他点到源点的最短距离和;源点到其他点的最短距离可在原图中用psfa求出,其他点到源点最短距离可在逆图中用spfa求出。#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;#define MAX_INT 1234567890struct node{ int v; int value; int next;};node edge1[1000001],edge2[1000001];int head 阅读全文
posted @ 2011-08-15 16:00 书山有路,学海无涯 阅读(1019) 评论(0) 推荐(1) 编辑
摘要: 题意上有一点要注意:在任何一条路径上,任何两点的等级之差都必须在限制之内。比如说:a、b、c的等级分别为3、2、1,限制为1的话。能和a、b交易就不能和c交易了,因为a和c超出限制。同样,b、c能交易就不能和a交易了,因为a、c任然超出限制。根据题意将每种物品看成每个顶点,优惠价格看成边,便构成一有向图,然后可以用Dijkstra求解。因为有等级限制,求一次Dijkstra是不行的。我看了网上大牛的思想:枚举0~L的每一种限制i,除去不在区间[rand[1]-i,rand[i]+m-i](rand[1]为酋长的等级)的顶点,然后Dijkstra,取其中最小的。#include<iostr 阅读全文
posted @ 2011-08-15 08:27 书山有路,学海无涯 阅读(1454) 评论(0) 推荐(0) 编辑