POJ 3259.Wormholes
来源:互联网 发布:mac双系统切换windows 编辑:程序博客网 时间:2024/05/29 07:39
题目:http://poj.org/problem?id=3259
AC代码(C++):
#include <iostream>#include <algorithm>#include <stdio.h>#include <vector>#include <queue>#include <math.h>#include <string>#include <string.h>#include <bitset>#define INF 0xfffffffusing namespace std;int map[505][505];bool vis[505];int cnt[505];int num[505];int N;void spfa(){ memset(vis,0,sizeof(vis)); memset(cnt,0,sizeof(cnt)); memset(num,127,sizeof(num)); queue<int> Q; Q.push(1); vis[1]=1; num[1]=0; cnt[1]++; while(!Q.empty()){ int tp=Q.front(); Q.pop(); vis[tp]=0; if(cnt[tp]>=N){ cout<<"YES\n"; return; } for(int i=1;i<=N;i++){ if(i!=tp && map[tp][i]!=INF){ int t=num[tp]+map[tp][i]; if(t>=num[i]) continue; num[i]=t; if(!vis[i]) vis[i]=1,Q.push(i),cnt[i]++; } } } cout<<"NO\n"; }int main(){int f;cin>>f;for(int i = 0; i < f; i++){memset(map,127,sizeof(map));cin>>N;int M,W;cin>>M>>W;for(int j = 0; j < M+W; j++){int S,E,T;cin>>S>>E>>T;if(j<M&&T<map[S][E]){map[S][E] = T;map[E][S] = T;}else if(j>=M&&-T<map[S][E])map[S][E] = -T;}spfa();}}总结:
1.找负环问题. 可以用bellman-ford或者spfa. 我这里用的spfa, 当一个节点入队超过N次时说明有负环.
2.这题要看清题目, 有几个地方有坑, 首先是path可以是双向的, 而且两个节点间可以有多条path, 但是不管怎样只有权值最小的那条才是有效的, 其他的忽略掉. wormhole的权值一定是负数所以可以覆盖path, 但是wormhole是单向的.
阅读全文
0 0
- POJ 3259.Wormholes
- poj Wormholes
- poj----Wormholes
- Wormholes POJ
- Wormholes POJ
- Wormholes POJ
- Wormholes POJ
- POJ 刷题系列:3259. Wormholes
- poj 3259 Wormholes //SPFA
- POJ 3259 Wormholes
- poj 3259 Wormholes
- POJ 3259 Wormholes
- POJ 3259 Wormholes
- Poj 3259 Wormholes
- poj 3259 Wormholes
- poj-3259-Wormholes
- POJ-3259-Wormholes
- POJ 3259 Wormholes bellman_ford
- LevelDb源码学习——版本管理
- [DP][容斥原理] BZOJ 4762: 最小集合
- java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=findAll], {ExactMatcher:fDi
- 序列化对象
- 一、介质访问控制方法CSMA/CD、Token Bus与Token Ring的比较:
- POJ 3259.Wormholes
- 机器学习笔记2.模型评估于选择----教材周志华西瓜书
- 利用highcharts在html页面混编jq引入失败问题
- abstract,以及abstract抽象类与interface接口的区别
- Win10下安装MySQL后,"mysql -uroot -p"无法启动mysql服务的解决方法。
- 关于js合成图片 html2canvas
- Maven笔记总结
- ubuntu 更新 docker 版本
- 常用关键词