POJ PKU 2267 图论 模拟 最短路
(2010-08-10 18:29:46)
标签:
pojpku2267图论模拟最短路it |
分类: 图论 |
题目描述:
一个吸血鬼要从一个城市到另外一个城市,只能在晚上 6 点到早上 6 点之间出行(出发时间和到达时间都要在晚六点到早六点之间),其它时间则只能呆在车站,每天中午 12 点需要喝一升血。
给你许多火车路线的信息(起点,重点,开车时间,车运行时间)
还有你的起点和终点。
问你为了完成旅行它需要准备多少升血?
解题报告:
由于坐每趟火车不会消耗血(时间只能是晚上,而喝血要在中午),
所以消耗的血只能发生在两趟火车之间,即一趟火车结束到下一趟或者出发之间包括了中午12点。
那样,就以火车路线为点建立图,路线之间如果有中午,权值为1,否则为0.
求最短路。
几点注意:
1 有可能你的起点和终点一样,此时输出0.
2 有可能你的起点或者终点就没有出现在路线中,此时不可能。
代码如下:
#include<iostream>
#include<cstring>
#include<map>
#include<string>
#include<vector>
#include<cstdio>
using namespace std;
#define siz 1005
struct edge{int to, next, va;}e[1000000];
struct jeo{int from, to, sta, len, end;} x[siz];
int cnt, v[siz * siz], n, t, num, from, to, m, d[siz * siz],
que[siz * 1000], vst[siz * siz];
void insert(int from, int to, int va)
{
}
map<string, int> hash;
string a, b;
int spfa()
{