社区讨论
求调闭关,用的低级哥斯拉
P1576最小花费参与者 13已保存回复 19
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 19 条
- 当前快照
- 1 份
- 快照标识符
- @mlgxv0nl
- 此快照首次捕获于
- 2026/02/11 02:32 上周
- 此快照最后确认于
- 2026/02/11 02:39 上周
CPP
#include<bits/stdc++.h>
#define ll long long
#define fii pair<int,int>
#define inf 0x3f3f3f3f
#define smalldui priority_queue<int,vector<int>,greater<int>>
using namespace std;
ll n, m, x, y, z, a, b;
ll dis[3001], vis[3001];
vector<fii> g[3001];
void dijigesila(){
for ( int i = 1 ; i <= n ; i++ ){
dis[i] = inf;
}
dis[a] = 0;
for ( int i = 1 ; i <= n ; i++ ){
ll pos = -1, minn = inf;
for ( int j = 1 ; j <= n ; j++ ){
if (dis[j] < minn && vis[j] == 0){
pos = j;
minn = dis[j];
}
}
if ( pos == -1 || minn == inf ){
break;
}
vis[pos] = 1;
for ( int j = 0 ; j < g[pos].size() ; j++ ){
ll id = g[pos][j].first;
ll z = g[pos][j].second;
if (dis[id] > dis[pos] + z ){
dis[id] = dis[pos] + z;
}
}
}
}
int main(){
cin >> n >> m;
for ( int i = 1 ; i <= m ; i++ ){
cin >> x >> y >> z;
g[x].push_back({y,z});
g[y].push_back({x,z});
}
cin >> a >> b;
dijigesila();
cout << fixed << setprecision(8) << 100 / (1 - dis[b] / 100);
return 0;
}
回复
共 19 条回复,欢迎继续交流。
正在加载回复...