文章

10

粉丝

224

获赞

12

访问

46.3k

头像
深度优先搜索
P1665 中南大学机试题
发布于2022年5月31日 09:52
阅读数 4.3k

思路:深度优先搜索。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...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发