From a2b13f5471d76181c420384cb8e5a5e318300caf Mon Sep 17 00:00:00 2001 From: pgftvecou <1714774285@qq.com> Date: Mon, 26 Jun 2023 01:24:34 +0800 Subject: [PATCH] ADD file via upload --- 自行车.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 自行车.cpp diff --git a/自行车.cpp b/自行车.cpp new file mode 100644 index 0000000..f656ae0 --- /dev/null +++ b/自行车.cpp @@ -0,0 +1,52 @@ +#include + +#include +#define INF 0x3f3f3f3f //¶¨Òå¡Þ +#define MAXV 101 +int A[MAXV][MAXV]; //ÁÚ½Ó¾ØÕó +int n, m; +int s, t; +int dist[MAXV]; +void BellmanFord(int v) //±´¶ûÂü-¸£ÌØËã·¨ +{ + int i, k, u; + for (i = 0; i < n; i++) + dist[i] = A[v][i]; //¶Ôdist0[i]³õʼ»¯ + for (k = 1; k < n; k++) //´Ódist0[u]µÝÍÆ³ödist2[u], ¡­,distn-1[u]Ñ­»·n-2´Î + { + for (u = 0; u < n; u++) //ÐÞ¸ÄËùÓзǶ¥µãvµÄdist[]Öµ + { + if (u != v) + { + for (i = 0; i < n; i++) + { + if (A[i][u]dist[i] + A[i][u]) + dist[u] = dist[i] + A[i][u]; + } + } + } + } +} +int main() +{ + int i, j; + int a, b, l; + scanf("%d%d", &n, &m); //ÊäÈën¡¢m + for (i = 0; i < n; i++) //³õʼ»¯ÁÚ½Ó¾ØÕó + for (j = 0; j < n; j++) + if (i == j) + A[i][j] = 0; + else + A[i][j] = INF; + for (i = 0; i < m; i++) //ÊäÈë±ß + { + scanf("%d%d%d", &a, &b, &l); + A[a][b] = -l; + } + scanf("%d%d", &s, &t); //ÊäÈësºÍt + BellmanFord(s); //²ÉÓÃBellmanFordËã·¨Çós³ö·¢µÄ×î¶Ì·¾¶ + printf("%d\n", -dist[t]); //Êä³ö½á¹û + return 1; +} + +