Wormholes POJ - 3259 SPFA shortest

While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at a time that is BEFORE you entered the wormhole! Each of FJ's farms comprises N (1 ≤ N ≤ 500) fields conveniently numbered 1..NM (1 ≤ M≤ 2500) paths, and W (1 ≤ W ≤ 200) wormholes.

As FJ is an avid time-traveling fan, he wants to do the following: start at some field, travel through some paths and wormholes, and return to the starting field a time before his initial departure. Perhaps he will be able to meet himself :) .

To help FJ find out whether this is possible or not, he will supply you with complete maps to F (1 ≤ F ≤ 5) of his farms. No paths will take longer than 10,000 seconds to travel and no wormhole can bring FJ back in time by more than 10,000 seconds.

Input

Line 1: A single integer, FF farm descriptions follow. 
Line 1 of each farm: Three space-separated integers respectively: NM, and W 
Lines 2.. M+1 of each farm: Three space-separated numbers ( SET) that describe, respectively: a bidirectional path between S and E that requires T seconds to traverse. Two fields might be connected by more than one path. 
Lines M+2.. MW+1 of each farm: Three space-separated numbers ( SET) that describe, respectively: A one way path from S to E that also moves the traveler backT seconds.

Output

Lines 1.. F: For each farm, output "YES" if FJ can achieve his goal, otherwise output "NO" (do not include the quotes).

Sample Input

2
3 3 1
1 2 2
1 3 4
2 3 1
3 1 3
3 2 1
1 2 3
2 3 4
3 1 8

Sample Output

NO
YES

Hint

For farm 1, FJ cannot travel back in time. 
For farm 2, FJ could travel back in time by the cycle 1->2->3->1, arriving back at his starting location 1 second before he leaves. He could start from anywhere on the cycle to accomplish this.

The second issue spfa -. - As for why to use this adjacency list is mainly to heavy side undirected path may be directed to cover the wormhole are not seeking the shortest path must be saved so that each edge

So adjacency table is the best choice because of the direct wave vector on just fine thing

#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
#include<vector>
#define clr(a,b) memset(a,b,sizeof(a));
#define inf 0x3f3f3f3f
using namespace std;
int f,n,m,w,visit[505],index[505],dis[505];
struct node
{
	int to;
	int power;
};
vector <node> ma [505]; // save data to use the adjacency list ma [i] [j] .to i j is the starting point is the number of edges reaches the point is to use brute a direct two-dimensional array structure FIG stored gross thief 

int spfa()
{
	queue<int> q;
	 q.push (1); // start point is a single-source shortest 
	dis[1]=0;
	visit[1]=1;
	index[1]=1;
	int in=0;
	while(!q.empty())
	{
		in=q.front();
		q.pop();
		visit[in]=0;
		if(index[in]>n)
		{
			return 1;
		}
		for(int i=0;i<ma[in].size();i++)
		{
			int to=ma[in][i].to;
			if(dis[to]>dis[in]+ma[in][i].power)
			{
		        dis[to]=dis[in]+ma[in][i].power;
				if(!visit[to])
				{
					visit[to]=1;
					q.push(to);
					index[to]++;						
				}
			}
		}
	}
	return 0;
}

int main()
{
	ios::sync_with_stdio(false);
	cin>>f;
	while(f--)
	{
		cin>>n>>m>>w;
		for(int i=0;i<=504;i++)
		ma[i].clear();
		clr(visit,0)
		clr(index,0)
		clr(dis,inf)
		for(int i=1;i<=m;i++)
		{
			int s,e,p;
			node g;
			cin>>s>>e>>p;
			g.to=e;
			g.power=p;
			ma[s].push_back(g);
			g.to=s;
			ma[e].push_back(g);
			
		}
		for(int i=1;i<=w;i++)
		{
			int s,e,p;
			node g;
			cin>>s>>e>>p;
			g.to=e;
			g.power=-p;
			ma[s].push_back(g);
		}
		if(spfa()) cout<<"YES"<<endl;
		else cout<<"NO"<<endl;
	}
	return 0; 
}

 

Intelligent Recommendation

POJ - 3259 -- Wormholes【spfa】

Meaning Think AC code...

(poj 3259)Wormholes(SPFA)

Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 52412 Accepted: 19506 Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is ver...

POJ-3259-Wormholes (shortest)

                                 &n...

[Kuangbin] four thematic shortest practice Wormholes POJ - 3259] [spfa

Description [title] While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destinat...

POJ - 3259 WORMHOLES (SPFA shortest road judgment negative ring)

Input Line 1: A single integer, F. F farm descriptions follow. Line 1 of each farm: Three space-separated integers respectively: N, M, and W Lines 2.. M+1 of each farm: Three space-separated numbers (...

More Recommendation

[Poj 3259] WORMHOLES shortest circuit judgment ring (SPFA version)

Topic transfer door:【POJ 3259】 The topic is very good: John has many farms, and each farm can be seen as a no-shaped figure. There are many insect caves on the farm, and these worm holes are connected...

POJ 3259 Wormholes (spfa power)

Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at a...

POJ-3259.Wormholes (SPFA algorithm)

3259.Wormholes Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its d...

POJ 3259 - WORMHOLES (SPFA Degree)

Topic description There are many classrooms in the teaching building, which are connected by a two-way corridor. In addition, there are some unidirectional secret channels that can be returned to the ...

POJ 3259 Wormholes (shortest BF)

[Topic link] http://poj.org/problem?id=3259 Topic meaning There are w wormholes in a farm, passing through the wormhole will go from u to v and back to t seconds ago. The owner gave m paths and the ti...

Copyright  DMCA © 2018-2026 - All Rights Reserved - www.programmersought.com  User Notice

Top