• 个人简介

    #include <iostream> using namespace std; /* 递归模板: void dfs(参数(地图,起点,终点)){ 处理节点 dfs(地图,选择的节点); 回溯,撤销处理结果 } // DFS模板 void dfs(参数){ if(终止条件){ 存放结果 return;// 终止当前的递归不是结束函数 } for(选择:本连接所有的其他节点){ 处理节点 dfs(地图,选择的节点); 回溯,撤销处理结果 } }

    */

    int main() { return 0; }

    #include <bits/stdc++.h> #include <vector> using namespace std;

    // 加权边结构体 struct Edge { int dest; // 目标顶点 int weight; // 边权重 Edge(int d, int w) : dest(d), weight(w) {} };

    // 通用邻接表操作 ----------------------------------------

    // 添加无向边(自动扩容) void addV(vector<vector<int>>& adj, int u, int v) { int max_v = max(u, v); if (max_v >= adj.size()) adj.resize(max_v + 1);

    adj[u].push_back(v);
    adj[v].push_back(u);
    

    }

    // 添加有向边(自动扩容) void addDV(vector<vector<int>>& adj, int u, int v) { int max_v = max(u, v); if (max_v >= adj.size()) adj.resize(max_v + 1);

    adj[u].push_back(v);
    

    }

    // 添加加权有向边(自动扩容) void addWV(vector<vector<Edge>>& adj, int u, int v, int weight) { int max_v = max(u, v); if (max_v >= adj.size()) adj.resize(max_v + 1);

    adj[u].emplace_back(v, weight);
    

    }

    // 打印邻接表(无权重) void printAdj(const vector<vector<int>>& adj) { cout << "邻接表结构:" << endl; for (int u = 0; u < adj.size(); ++u) { cout << u << " -> [ "; for (int v : adj[u]) { cout << v << " "; } cout << "]" << endl; } }

    int main() { // 无向图测试 vector<vector<int>> grap; addV(grap, 0, 1); addV(grap, 0, 2); addV(grap, 1, 3); addV(grap, 2, 4); // 测试自动扩容

    return 0;
    

    }

  • 通过的题目

  • 最近活动

题目标签

力扣
12
来源
8
搜索
4
贪心
4
BFS
3
动态规划
3
力扣、深度优先搜素DFS
3
数据结构
1
并查集
1
递推
1
二分查找
1
广度优先算法、力扣
1
力扣、分治
1
广度优先搜索DFS
1
基础算法
1
广度优先搜索算法
1
区间DP
1
记忆化搜索
1