全部评论 8

  • 测试:

    // ans 用于记录答案,一开始把答案设置为无穷大。
    int ans = 0x7f7f7f7f; 
    // 记录一个点是否被访问过,防止出现循环。
    int vis[105];
    struct Edge{
        int to;
        int weight;
    }; vector<Edge> G[105];
    
    // 表示到 node 节点的耗时为 steps。
    void dfs(int node, int steps){
        if (steps >= ans) // 最优性剪枝。
        // 如果走到目标答案,就更新结果并返回。
        if (node == terminal){
            ans = min(ans, steps);
            return ;
        }
    	for (Edge next : G[node]){
            // 遍历从 node 开始所有的边。
            if (vis[next.to]) continue ;  // 被访问过了,就跳过。
        	vis[next.to] = 1;  // 将节点标记为已访问的状态。
            dfs(next.to, steps + next.weight);  // 继续递归。
            vis[next.to] = 0;  // 将节点标记为未访问的状态。
        }
        return ;
    }
    

    2024-06-20 来自 浙江

    1
  • 你可以在你之前发的学术帖子上面加一个链接,就是那个《最近考完试,想写点什么,求ACGOusers建议》

    2024-07-12 来自 广东

    0
  • LaTeX\LaTeX

    2024-06-20 来自 浙江

    0
  • sto orz

    2024-06-17 来自 广东

    0
  • %%%

    2024-06-16 来自 浙江

    0
  • good

    2024-06-16 来自 广东

    0
  • 写得真好:)不过单源最短路居然没写上SPFA,这个可是鼎鼎有名啊(

    2024-06-16 来自 上海

    0
  • 趁没人,召唤AC君(

    2024-06-16 来自 广东

    0

热门讨论