codevs 2645 Spore SPFA c++
来源:互联网 发布:淘宝微海报在哪里展示 编辑:程序博客网 时间:2024/06/15 01:49
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m,flag;int dis[1001],fh[1001],d[100001],pd[1001][1001];int et,head[20001],to[20001],c[20001],next[20001];void insert(int u,int v,int w){et++;to[et]=v;c[et]=w;next[et]=head[u];head[u]=et;}void spfa(){int t=0,w=1,p;dis[1]=0;d[0]=1;fh[1]++;while(t<w){p=head[d[t]];while(p!=0){if(dis[d[t]]+c[p]<dis[to[p]]){dis[to[p]]=dis[d[t]]+c[p]; d[w++]=to[p];fh[to[p]]++;if(fh[to[p]]>n){cout<<"No such path";flag=1;return;}} p=next[p];}t++;}}int main(){int x,y,a1,a2;while(cin>>n>>m){if(n==0&&m==0)break;et=0,flag=0;memset(fh,0,sizeof(fh));memset(pd,0,sizeof(pd));memset(next,0,sizeof(next));memset(head,0,sizeof(head)); for(int i=1;i<=m;i++) { cin>>x>>y>>a1>>a2; insert(x,y,a1);insert(y,x,a2); pd[x][y]=pd[y][x]=1; } for(int i=1;i<=n;i++)dis[i]=999999;spfa();if(!flag){if(dis[n]==999999)cout<<"No such path";else cout<<dis[n];}cout<<endl;} return 0;}
阅读全文
0 0
- 【codevs】2645 Spore SPFA+判负环
- codevs 2645 Spore(spfa)
- codevs 2645 Spore SPFA c++
- CodeVS 2645 Spore 题解 【图论】【SPFA】
- codevs 2645 Spore
- codevs 2645 Spore
- Codevs 2645 Spore
- CODE[VS] 2645 Spore SPFA
- 【CS 2645】Spore (spfa松弛判负环)
- Spore
- codevs - 图论 - SPFA
- 【codevs 1557】热浪(SPFA)
- CODEVS 4175 收费站 二分+SPFA
- codevs 4175 二分+spfa判断
- 【日常学习】【SPFA负环+数组模拟链表实现】codevs2645 Spore题解
- [CodeVs2645] Spore
- codevs 1269 匈牙利游戏 SPFA+次短路
- Codevs 2059 逃出克隆岛 BFS || SPFA
- 非线性编辑系统的实用性EDIUS非线剪辑机
- 顺序存储线性表的C++实现——严蔚敏版《数据结构》
- 导入一个maven工程后一直显示importing maven projects
- 移动支付接入相关(转载自elangduan的博客)
- 5-2 一元多项式的乘法与加法运算
- codevs 2645 Spore SPFA c++
- 通过docker和docker-compose实现eureka高可用
- android 内存泄露分析及调试(LeakCanary使用)
- HDU1034 Candy Sharing Game
- C3选择器
- IntelliJ IDEA创建maven多模块项目
- HTML 标记大全参考手册
- Java中如何解决double和float精度不准的问题
- JQ对每一行的最后一位元素进行单独的样式调整