第五十天 第十一章:图论part01 图论理论基础 深搜理论基础 98. 所有可达路径 广搜理论基础
创始人
2024-12-09 18:05:50

 图论理论基础

了解邻接矩阵(*),度,邻接表(数组+链表)等        遍历顺序:深搜加广搜

深搜理论基础  

dfs是可一个方向去搜,不到黄河不回头,直到遇到绝境了,搜不下去了,再换方向(换方向的过程就涉及到了回溯)。

void dfs(参数) {     if (终止条件) {         存放结果;         return;     }      for (选择:本节点所连接的其他节点) {         处理节点;         dfs(图,选择的节点); // 递归         回溯,撤销处理结果     } } 

98. 所有可达路径  

注意图的输入形式,这里图用二维数组graph[s][t]表示,其中s,t表示s,t两点之间是否相连,相连赋值为1,不然为0。

后面深搜的方法和回溯三部曲几乎一样。

#include #include using namespace std;  vector> res; vector path;  void dfs(const vector> &graph , int m ,int n){     if(m==n){        res.push_back(path);         return ;     }          for(int i=1;i<=n;i++){         if(graph[m][i]==1){             path.push_back(i);             dfs(graph,i,n);             path.pop_back();         }     } }  int main(){     int N,M,s,t;     cin>>N>>M;     vector> graph(N + 1,vector(N + 1,0));     while(M--){        cin>>s>>t;        graph[s][t]=1;     }     path.push_back(1);     dfs(graph,1,N);     if (res.size() == 0) cout << -1 << endl;     for (const vector &pa : res) {         for(int i=0;i

广搜理论基础

bfs是先把本节点所连接的所有节点遍历一遍,走到下一个节点的时候,再把连接节点的所有节点遍历一遍,搜索方向更像是广度,四面八方的搜索过程。

int dir[4][2] = {0, 1, 1, 0, -1, 0, 0, -1}; // 表示四个方向 // grid 是地图,也就是一个二维数组 // visited标记访问过的节点,不要重复访问 // x,y 表示开始搜索节点的下标 void bfs(vector>& grid, vector>& visited, int x, int y) {     queue> que; // 定义队列     que.push({x, y}); // 起始节点加入队列     visited[x][y] = true; // 只要加入队列,立刻标记为访问过的节点     while(!que.empty()) { // 开始遍历队列里的元素         pair cur = que.front(); que.pop(); // 从队列取元素         int curx = cur.first;         int cury = cur.second; // 当前节点坐标         for (int i = 0; i < 4; i++) { // 开始想当前节点的四个方向左右上下去遍历             int nextx = curx + dir[i][0];             int nexty = cury + dir[i][1]; // 获取周边四个方向的坐标             if (nextx < 0 || nextx >= grid.size() || nexty < 0 || nexty >= grid[0].size()) continue;  // 坐标越界了,直接跳过             if (!visited[nextx][nexty]) { // 如果节点没被访问过                 que.push({nextx, nexty});  // 队列添加该节点为下一轮要遍历的节点                 visited[nextx][nexty] = true; // 只要加入队列立刻标记,避免重复访问             }         }     }  }

相关内容

热门资讯

一批创新成果获茅以升交通运输科... (来源:中国交通新闻网) 转自:中国交通新闻网 日前,2025年度茅以升交通运输科学技术奖评审结果公...
全国投资人,“抢夺”深圳大厂高... 白手起家的新故事。 来源:每日人物 文:谢韫力 编辑:张轻松 过去一年,北京、上海的投资人开始频繁出...
心智观察所:4月,中国芯片出口... 【文/观察者网 心智观察所】 2026年4月,中国芯片出口录得一个几乎“反常识”的数字:单月出口额...
原创 “... 最近这出“锁电”闹剧,算是把新能源车的信任危机演明白了。 前脚多家车企被约谈、立案的传闻满天飞,后脚...
他山科技携手图灵奖得主萨顿 签... 观点网讯:近日,图灵奖得主、强化学习领域主要奠基人理查德·萨顿教授与北京石景山企业他山科技在加拿大签...