当前位置:网站首页>POJ3259虫洞题解
POJ3259虫洞题解
2022-07-28 12:37:00 【bj_hacker】
题目
链接
http://poj.org/problem?id=3259
字面描述
Wormholes
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 92250 Accepted: 33922
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 time that is BEFORE you entered the wormhole! Each of FJ’s farms comprises N (1 ≤ N ≤ 500) fields conveniently numbered 1…N, M (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, 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 (S, E, T) 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…M+W+1 of each farm: Three space-separated numbers (S, E, T) that describe, respectively: A one way path from S to E that also moves the traveler back T 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.
Source
USACO 2006 December Gold
思路
这道题是靠虫洞无限减少时间,我们可以用SPFA去判断负环,也可以用Floyd去判断负环。
代码实现
#include<cstdio>
#include<string.h>
#include<cstring>
using namespace std;
const int maxn=500+10;
int f,n,m,w;
int g[maxn][maxn];
inline bool Floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(g[i][j]>g[i][k]+g[k][j])g[i][j]=g[i][k]+g[k][j];
}
if(g[i][i]<0)return true;
}
}
return false;
}
int main(){
scanf("%d",&f);
while(f--){
memset(g,0x3f,sizeof(g));
scanf("%d%d%d",&n,&m,&w);
for(int i=1;i<=m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
if(g[u][v]>w||g[v][u]>w)g[u][v]=g[v][u]=w;
}
for(int i=1;i<=w;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
g[u][v]=-w;
}
if(!Floyd())printf("NO\n");
else printf("YES\n");
}
return 0;
}
边栏推荐
- Children's programming electronic society graphical programming level examination scratch Level 2 real problem analysis (judgment question) June 2022
- C language: quick sorting of sequential storage structure
- Jar package
- 少儿编程 电子学会图形化编程等级考试Scratch二级真题解析(判断题)2022年6月
- Use non recursive method to realize layer traversal, preorder traversal, middle order traversal and post order traversal in binary tree
- 微信小程序中自定义模板
- paddleClas分类实践记录
- [C language] the difference between structure pointer and structure variable as formal parameters
- nport串口服务器配置网址(串口服务器是不是网口转串口)
- 蓝桥集训(附加面试题)第七天
猜你喜欢

JVM 内存管理 你知道多少

Using auto.js to realize the function of fifaol3 mobile terminal card interceptor

111. SAP UI5 FileUploader 控件实现本地文件上传,接收服务器端的响应时遇到跨域访问错误

Why is crypto game changing the game industry?

Shell basic concepts and variables

.NET桌面开发的一些思考

Chapter 6 promotion
![[报错]使用ssh登陆到另一台机器后,发现主机名还是自己|无法访问yarn8088](/img/81/641a5b3445534fc3b8c87ee6deaa64.png)
[报错]使用ssh登陆到另一台机器后,发现主机名还是自己|无法访问yarn8088

SAP UI5 FileUploader 控件实现本地文件上传,接收服务器端的响应时遇到跨域访问错误的试读版

I miss the year of "losing" Li Ziqi
随机推荐
PHP generates random numbers (nickname random generator)
Night God simulator packet capturing wechat applet
基于pytorch卷积人脸表情识别–毕业设计「建议收藏」
[报错]使用ssh登陆到另一台机器后,发现主机名还是自己|无法访问yarn8088
Leetcode · daily question · 1331. array sequence number conversion · discretization
JVM 内存管理 你知道多少
沾上趣店,都得道歉?
酷炫操作预热!代码实现小星球特效
验证码暴力破解测试[通俗易懂]
C语言:优化后的归并排序
Extended operator
为什么说Crypto游戏正在改变游戏产业?
How much do you know about JVM memory management
Leetcode-190. inverting binary bits
LyScript 获取上一条与下一条指令
What is the optimization method of transaction and database
不用Swagger,那我用啥?
拒绝服务 DDoS 攻击
今日睡眠质量记录75分
C语言:随机生成数+归并排序