社区讨论
50分求条 杨立国了
P2865[USACO06NOV] Roadblocks G参与者 2已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @m01plbdl
- 此快照首次捕获于
- 2024/08/20 08:51 2 年前
- 此快照最后确认于
- 2024/08/20 09:11 2 年前
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5005;
int n, r, dis[N], dis2[N], cnt[N];
bool f[N];
struct node{
int v, w;
};
vector<node> a[N];
void spfa()
{
for (int i = 1; i <= n; i++)
{
dis[i] = INT_MAX;
dis2[i] = INT_MAX;
}
dis[1] = 0, dis2[1] = 0;
queue<int> q;
q.push(1);
f[1] = 1;
cnt[1] = 1;
while (q.size())
{
int k = q.front();
q.pop();
f[k] = 0;
for (int i = 0; i < a[k].size(); i++)
{
int v = a[k][i].v, w = a[k][i].w;
if (dis[k] + w < dis[v])
{
dis2[v] = dis[v];
dis[v] = dis[k] + w;
}
else if (dis[k] + w < dis2[v])
{
dis2[v] = dis[k] + w;
}
}
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin >> n >> r;
for (int i = 1; i <= r; i++)
{
int u, v, w;
cin >> u >> v >> w;
a[u].push_back({v, w});
a[v].push_back({u, w});
}
spfa();
cout << dis2[n];
return 0;
}
/*
*/
回复
共 5 条回复,欢迎继续交流。
正在加载回复...