lanqiao OJ 2194 出差 bellman—ford

简介: lanqiao OJ 2194 出差 bellman—ford

用户登录

单源最短路,可以存在负数  

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
const int INF = 0x3f3f3f3f ;
const int N = 20010 ;
struct edge{
  int a , b , c ;
}e[N];
int t[N] ;
int dis[N] ;
int n , m ;
int main(){
  cin >> n >> m ;
  for(int i = 1 ; i <= n ;i ++) cin >> t[i] ;
  for(int i = 1 ; i <= m ; i ++){
    int a, b ,c ;
    cin >> a >> b >> c ;
    e[i].a = a , e[i].b = b , e[i].c = c ;
    e[i+m].a = b , e[i+m].b = a , e[i+m].c = c ; 
  }
  memset(dis,INF ,sizeof(dis)) ;
  dis[1] = 0 ;
  for(int k = 1 ; k <= n ; k ++){
    for(int i = 1 ; i <= 2*m ; i ++){
      int u = e[i].a , v = e[i].b ;
      int res = t[v] ;
      if(v == n) res = 0 ;
      dis[v] = min(dis[v],dis[u] + res + e[i].c) ;
    }
  }
  cout << dis[n] << endl ;
}
目录
相关文章
|
1月前
lanqiao OJ 22年省赛 扫雷
lanqiao OJ 22年省赛 扫雷
30 1
|
1月前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
27 0
|
1月前
lanqiao oj 1121 蓝桥公园(floyd)
lanqiao oj 1121 蓝桥公园(floyd)
41 0
|
1月前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
11 0
|
1月前
lanqiao oj 1135 蓝桥幼儿园(并查集)
lanqiao oj 1135 蓝桥幼儿园(并查集)
26 0
|
1月前
lanqiao oj 186 糖果(状态压缩dp)
lanqiao oj 186 糖果(状态压缩dp)
13 0
|
1月前
lanqiao OJ 234 大胖子走迷宫
lanqiao OJ 234 大胖子走迷宫
11 0
|
1月前
lanqiao OJ 110 合根植物
lanqiao OJ 110 合根植物
10 0
[Nowcoder] 银河 差分约束_spfa+超级源点 | Tarjan缩点
Description 银河中的恒星浩如烟海,但是我们只关注那些最亮的恒星。我们用一个正整数来表示恒星的亮度,数值越大则恒星就越亮,恒星的亮度最暗是 1。现在对于 N 颗我们关注的恒星,有 M 对亮度之间的相对关系已经判明。你的任务就是求出这 N 颗恒星的亮度值总和至少有多大。
118 0
[Nowcoder] 银河 差分约束_spfa+超级源点 | Tarjan缩点