当前位置: 首页 > news >正文

河西网站建设世界优秀摄影作品网站

河西网站建设,世界优秀摄影作品网站,网站支付链接怎么做的,太姥山镇建设的网站图的基础知识【这部分建议使用acm模式】 图论理论基础 | 代码随想录 存储#xff1a; 一般有邻接表【适合稀疏图】【数组 链表 】和邻接矩阵【适合稠密图】存储方式 注意邻接表 和 邻接矩阵的写法都要掌握#xff01; 邻接矩阵 n个节点#xff0c;申请n*n或者#xf…图的基础知识【这部分建议使用acm模式】 图论理论基础 | 代码随想录 存储 一般有邻接表【适合稀疏图】【数组 链表 】和邻接矩阵【适合稠密图】存储方式 注意邻接表 和 邻接矩阵的写法都要掌握 邻接矩阵 n个节点申请n*n或者n1*n1大小的二维数组 vectorvectorintvec(n1,vectorint(n1)); //m条边 while(m--){         cinst;         vec[s][t] 1;//可达 } 邻接表【数组链表】 vectorlistintgraph(n1);//list是c中的链表 while(m--){         cinst;         graph[s].push_back(t); } 图的遍历 dfs是可一个方向去搜不到黄河不回头直到遇到绝境了搜不下去了再换方向换方向的过程就涉及到了回溯。 关于为何回溯 原来走的是1,2到了终点需要返回5的位置重新搜 bfs是先把本节点所连接的所有节点遍历一遍走到下一个节点的时候再把连接节点的所有节点遍历一遍搜索方向更像是广度四面八方的搜索过程。 dfs【联想当初的回溯】 1.递归结束条件到终点 2.递归过程         遍历每一个节点加入路径中         回溯继续往深遍历 98. 所有可达路径 遍历第一个节点到最后一个节点的所有路径 void dfs(int i,int N,vectorvectorintgraph){if(iN-1){res.push_back(path);return;}for(int j 0;jN;j){if(geaph[i][j] 1){path.push_bak(j);}dfs(j,N,graph);// dfs(i1,N,graph);//下一层递归path.pop_back();// dfs(i1,N,graph);} } bfs【围绕起点一圈一圈搜索】 上下左右 模板关键点 dir[4][2]四个方向右、下、左、上。 visited防止重复访问否则会死循环。 越界检查nextx和nexty不能超出地图范围。 关于dir:(0,1),(1,0),(-1,0),(0,-1表示四个方向 int dir[4][2] {0, 1, 1, 0, -1, 0, 0, -1}; // 表示四个方向 // grid 是地图也就是一个二维数组 // visited标记访问过的节点不要重复访问 // x,y 表示开始搜索节点的下标 void bfs(vectorvectorchar grid, vectorvectorbool visited, int x, int y) {queuepairint, int que; // 定义队列que.push({x, y}); // 起始节点加入队列visited[x][y] true; // 只要加入队列立刻标记为访问过的节点while(!que.empty()) { // 开始遍历队列里的元素pairint ,int 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; // 只要加入队列立刻标记避免重复访问}}}} 拓扑排序 #include vector #include queue using namespace std;vectorint topologicalSort(int n, vectorpairint, int edges) {vectorvectorint graph(n);vectorint inDegree(n, 0);// 建图 计算入度for (auto edge : edges) {int u edge.first, v edge.second;graph[u].push_back(v);inDegree[v];}// 初始化队列入度为0的节点queueint q;for (int i 0; i n; i) {if (inDegree[i] 0) q.push(i);}// 执行拓扑排序vectorint topoOrder;while (!q.empty()) {int u q.front();q.pop();topoOrder.push_back(u);for (int v : graph[u]) {if (--inDegree[v] 0) {q.push(v);}}}if (topoOrder.size() ! n) return {}; // 有环return topoOrder; } dj算法 小根堆得到当前的路径min #include vector #include queue #include climits using namespace std; typedef pairint, int pii; // {distance, node}vectorint dijkstra(int n, vectorvectorpii graph, int start) {vectorint dist(n, INT_MAX);dist[start] 0;priority_queuepii, vectorpii, greaterpii pq; // 小根堆pq.push({0, start});while (!pq.empty()) {auto [d, u] pq.top();pq.pop();if (d dist[u]) continue; // 已处理过更优解for (auto [v, w] : graph[u]) {if (dist[v] dist[u] w) {dist[v] dist[u] w;pq.push({dist[v], v});}}}return dist; }
http://www.zqtcl.cn/news/711603/

相关文章:

  • 公司网站开发的国内外研究现状个人网页设计大全
  • 做一个网站人员网站建设及推广优化
  • 胶州市城乡建设局网站能进封禁网站的浏览器
  • 网站做几级等保荣耀商城手机官网
  • 营销网站费用渭南网站建设公司
  • wordpress主题集成插件下载网站如何做360优化
  • 有什么在线做文档的网站网站开发需要用到哪些技术
  • 网站套餐可以分摊吗吗移动登录网页模板免费下载
  • asp网站会员注册不了但是打不开网页
  • wordpress 中文网店杭州排名优化公司
  • wordpress建站安全吗wordpress企业主题教程
  • 网站构建的开发费用信息管理系统网站开发教程
  • 自己做网站怎么维护wordpress素材模板
  • 如何选择一个好的优质网站建设公司wordpress 主题小工具
  • mysql数据库做网站广州网站seo地址
  • 福建省住房和城乡建设厅网站电话网站开发项目步骤
  • 网站注册域名多少钱淘宝网商城
  • 做架构图的网站网站和网店的区别
  • 做红包网站简单个人网站设计
  • 新手学做网站pdf手wordpress修改搜索框
  • 做湲兔费网站视颍如何通过查询网站注册时间
  • 重庆cms建站模板南通网站建设推广优化
  • 合肥网站建设的公司新闻类网站如何做量化统计
  • 好用的在线地图网站十六局集团门户网
  • 网站开发数据库连接失败广州网站建站平台
  • 鄂尔多斯北京网站建设加盟网站建设的内容
  • 网站 被 抄袭不属于营销型网站的特点
  • 浙江英文网站建设互联网公司排名2021完整版
  • 完美代码的网站python开发工具
  • 餐饮网站开发参考文献网站建设500错误代码