文章
10
粉丝
224
获赞
38
访问
53.7k
思路:深度优先搜索。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, pre);
return;
}
if (vis[i])
return;
vis[i] = true;
for (int j = 1; j < g[i].size(); j++)
{
if (j != i && g[i][j] != 0)
{
dfs(j, goal, g, vis, pre * g[i][j]);
}
}
vis[i] = false;
}
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
vector<vector<double>> g(n + 1, vector<double>(n + 1));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
scanf("%lf", &g[i][j]);
}
}
int m;
scanf("%d", &m);
while (m-- > 0...
登录后发布评论
暂无评论,来抢沙发