首页
DreamJudge
院校信息
考研初试
考研复试
保研专区
讨论区
兑换中心
登录
注册
上岸
以下题解仅供学习参考使用。
抄袭、复制题解,以达到刷AC率/AC数量或其他目的的行为,在N诺是严格禁止的。
N诺非常重视学术诚信。此类行为将会导致您成为作弊者。具体细则请查看N诺社区规则。
快乐小土狗
2026年3月5日 20:37
安全路径 题解:
P1665
回复 0
|
赞 4
|
浏览 84
#include <iostream> #include <iomanip> using namespace std; const int MAXN = 1005; double graph[MAXN][MAXN]; double dist[MAXN]; bool visited[MAXN]; void dijkstra(int start, int n) { // 初始化距离数组和访问标记数组 for (int i = 1; i <= n; ++i) { dist[i] = 0.0; ...
2072166673
2025年8月14日 20:54
安全路径 题解:迪杰斯特拉求最短路。
P1665
回复 0
|
赞 7
|
浏览 708
观察到Safe(p)是一个乘积的形式,而我们的迪杰斯特拉算法模板是求和形式。我们可以变形。变成ln(safe(p))=ln(s1)+ln(s2)+...求lnsafe(p) 的最大值。但由于si是小于等于1 的,ln就是小于0的。于是-ln(safeP)=ln(1/s1)+...,要求ln(safeP)的最大值就是求这个式子最小值。于是我们可以把输入的权值变成-ln(1/si)就可以套用迪杰斯特拉求最短路了。最后迪杰斯特拉得到的结果a变成e^(-a)就是结果了。 #include<bits/stdc++.h> ...
930254841
2022年5月31日 09:52
深度优先搜索
P1665
回复 0
|
赞 12
|
浏览 5.9k
思路:深度优先搜索。pre记录了从出发点到当前节点i的安全度。当节点到达目标goal时,更新安全度res。 #include <bits/stdc++.h> using namespace std; double res = 0; void dfs(int i, int goal, vector<vector<double>> &g, vector<bool> &vis, double pre) { if (i == goal) { res = max(res,...
题目
安全路径
题解数量
3
发布题解
在线答疑
热门题解
1
深度优先搜索
2
安全路径 题解:迪杰斯特拉求最短路。
3
安全路径 题解: