hdu 3592 World Exhibition
来源:互联网 发布:软件商业计划书模板 编辑:程序博客网 时间:2024/06/03 20:41
用最短路进行差分约束,注意当n不能到达时输出-2;
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<queue>using namespace std;struct pi{ int no,to,cost,next;}pp[20005];int head[1005],vis[1005],tot;long long dis[1005],aa[1005];void add(int a,int b,int cost){ pp[tot].no=a; pp[tot].to=b; pp[tot].cost=cost; pp[tot].next=head[a]; head[a]=tot++; return ;}queue<int >q;int main(){ int i,n,m,p,k,t,f,v,flag; cin>>t; while(t--) { cin>>n>>m>>p; memset(head,-1,sizeof(head)); tot=0; for(i=1;i<=n;i++){ dis[i]=100000000000; vis[i]=0; aa[i]=0; } for(i=0;i<m;i++){ scanf("%d%d%d",&k,&f,&v); if(k>f) swap(k,f); add(k,f,v); } for(i=0;i<p;i++){ scanf("%d%d%d",&k,&f,&v); if(k>f) swap(k,f); add(f,k,-v); } for(i=1;i<n;i++) add(i+1,i,-1); dis[1]=0; vis[1]=1; while(!q.empty()) q.pop(); q.push(1); flag=0; while(!q.empty()) { p=q.front(); q.pop(); vis[p]=0; aa[p]++; for(i=head[p];i!=-1;i=pp[i].next){ if(dis[pp[i].to]>dis[p]+pp[i].cost){ dis[pp[i].to]=dis[p]+pp[i].cost; if(!vis[pp[i].to]){ vis[pp[i].to]=1; q.push(pp[i].to); } } } if(aa[p]>=n){ flag=1; break; } } if(flag){ printf("-1\n"); } else if(dis[n]<dis[1]||dis[n]>=1000000000) printf("-2\n"); else printf("%lld\n",dis[n]-dis[1]); } return 0;}
0 0
- HDU 3592 World Exhibition
- hdu 3592 World Exhibition
- HDU-3592 World Exhibition
- HDU--3592[World Exhibition] 差分约束
- hdu 3592 World Exhibition //差分约束
- hdu 3592 World Exhibition 差分约束
- HDU 3592 World Exhibition 差分约束
- hdu-3592-World Exhibition-差分约束
- |hdu 3592|差分约束|World Exhibition
- HDU 3592 World Exhibition 差分约束基础题
- 【POJ】3169 Layout & 【HDU】3592 World Exhibition 差分约束
- hdu 3592 World Exhibition 【差分约束+SPFA】
- hdu 3592 World Exhibition(差分约束,最短路)
- HDU 3592 World Exhibition(差分约束)
- HDU/HDOJ 3592 差分约束 World Exhibition 2010年多校联合第15场
- HDOJ 3592 World Exhibition 差分约束
- hdoj 3592 World Exhibition 【差分约束】【基础题】
- hdoj--3592--World Exhibition(差分约束)
- 日积月累-----学习笔记
- stm32 中断函数名称表
- fatal error LNK1112: module machine type 'MIPS' conflicts with target machine type 'ARM
- centos6.5安装nodejs
- 音乐播放器通知栏切歌(Notification+BroadcastReceiver)
- hdu 3592 World Exhibition
- leetcode第一刷_Swap Nodes in Pairs
- English expressions about clothes
- 第12周-项目4-时间日期类
- c++ primer plus(第6版)中文版 第十一章编程练习答案
- hdu 1867 A + B for you again
- [leetcode]Evaluate Reverse Polish Notation
- hdu 1534 Schedule Problem
- java.lang.UnsatisfiedLinkError解决方法汇集