-
个人简介
#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