哈尔滨网站建设王道下拉強个人简历网官网

张小明 2026/3/13 4:31:27
哈尔滨网站建设王道下拉強,个人简历网官网,汕尾海丰建设规划局网站,长沙网站建设规划KamaCoder108.冗余连接 108. 多余的边 1.思路 对于边 (s, t)#xff0c;使用 find(s) 和 find(t) 分别查找 s 和 t 所在集合的根节点。 如果根节点相同#xff1a;说明 s 和 t 本来就在同一个集合中#xff0c;即它们已经连通。此时#xff0c;边 (s, t) 的加入必定会形成…KamaCoder108.冗余连接108. 多余的边1.思路对于边(s, t)使用find(s)和find(t)分别查找s和t所在集合的根节点。如果根节点相同说明s和t本来就在同一个集合中即它们已经连通。此时边(s, t)的加入必定会形成环。这就是我们要找的第一条成环边直接输出(s, t)并结束程序。如果根节点不同说明s和t尚未连通。此时使用join(s, t)将它们所在的两个集合合并表示它们现在连通了。然后继续处理下一条边。#include iostream #include vector using namespace std; int n; vectorintfather(1005,1); void init(){ for(int i1;in;i){ father[i]i; } } int find(int u){ if(ufather[u]){ return u; } return father[u]find(father[u]); } // 将v-u 这条边加入并查集 int join(int u,int v){ ufind(u); vfind(v); if(uv) return 0; // 如果发现根相同则说明在一个集合不用两个节点相连直接返回 father[u]v; return 1; } int main(){ cinn; init(); for(int i0;in;i){ int s,t;cinst; if(!join(s,t)){ couts tendl; break; } } return 0; }2.思考这道题只需要在合并的时候判断两个节点的父节点是否相同即可相同则说明两节点已经在同一集合了直接输出当前两节点。3.Reference108. 多余的边KamaCoder109.多余的边II109. 多余的边II1.思路这个图最初是一棵有n个节点的树有n-1条边然后被额外添加了一条有向边。由于添加了这条边图可能不再是一棵树。这会导致两种可能的问题存在环新添加的边连接了已经连通的两个节点存在入度为2的节点新添加的边指向了一个已经有入边的节点。目标找出这条被添加的“冗余”边移除它后图能重新变为一棵树。情况一存在入度为 2 的节点 (vec.size() 0)冗余边必定是edge1或edge2中的一条我们需要判断到底是哪一条。首先尝试删除vec[1]对应的边如果isdelete返回true说明删除edge2后图是合法的 那么edge2就是答案。如果isdelete返回false说明删除edge2后图仍然有环。这意味 着edge1才是构成环的边因此edge1是答案。情况二不存在入度为 2 的节点 (vec.size() 0)既然没有入度为 2 的节点那么问题必定是存在一个环。而且这个环就是由那条多 余的边造成的。直接使用并查集遍历所有n条边找到第一个构成环的边即可。如果issame(u, v)为true说明u和v已经连通当前边(u, v)就是导致环的冗余边。直 接输出并结束程序。如果issame(u, v)为false则执行join(u, v)继续检查下一条边。#include iostream #include vector using namespace std; int n; vectorintfather(1005,1); void init(){ for(int i1;in;i){ father[i]i; } } int find(int u){ if(ufather[u]){ return u; } return father[u]find(father[u]); } bool issame(int u,int v){ ufind(u); vfind(v); return uv; } void join(int u,int v){ ufind(u); vfind(v); if(uv) return; father[u]v; } // 删一条边之后判断是不是树 bool isdelete(vectorpairint,intedges,int u){ init(); for(int i1;in;i){ if(iu) continue; if(issame(edges[i].first,edges[i].second)){ // 构成有向环了一定不是树 return false; } else join(edges[i].first,edges[i].second); } return true; } int main(){ cinn; vectorpairint,intedges(n1); // 存边 vectorintindegree(n1,0); // 记录节点入度 for(int i1;in;i){ int s,t;cinst; edges[i]{s,t}; indegree[t]; } vectorintvec; // 找入度为2的节点所对应的边 for(int i1;in;i){ if(indegree[edges[i].second]2){ vec.push_back(i); } } if(vec.size()0){ // 优先删vec[1] 对应这条边 if(isdelete(edges,vec[1])){ coutedges[vec[1]].first edges[vec[1]].secondendl; } else coutedges[vec[0]].first edges[vec[0]].secondendl; return 0; } // 明确没有入度为2的情况那么一定有有向环找到构成环的边返回就可以了 // 在有向图里找到删除的那条边使其变成树 init(); for(int i1;in;i){ if(issame(edges[i].first,edges[i].second)){ coutedges[i].first edges[i].secondendl; return 0; } else join(edges[i].first,edges[i].second); } return 0; }2.思考这道题较上道题难度天差地别。有多余的边我们就要讨论几种情况第一种就是有入度为 2 的节点那么显而易见该节点相关的两条边中的一条就是冗余的边那么此时我们就假设删除第二条边然后看剩余边能否构成有向树如果能那么该条边就是冗余的否则第一条边就是冗余的还有一种情况就不存在入度为 2 的节点但此时还是存在冗余边所以就是形成了环此时也就来到了 多余的边 那道题的情况只需要依次连接节点遇到在同一集合的两节点立即输出返回此时两节点构成的边即为多余的边。3.Reference109. 冗余连接II | 代码随想录
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站怎么样做采集别人网站的文章书签图片

BBDown完整教程:5步掌握B站视频下载终极方法 【免费下载链接】BBDown Bilibili Downloader. 一款命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 还在为无法保存B站精彩视频而烦恼吗?BBDown这款强大的命令行下载工…

张小明 2026/3/5 4:04:55 网站建设

网站规划设计是什么南昌做网站建站的

第一章:Open-AutoGLM 与端侧大模型协同进化的技术基座在边缘计算与人工智能深度融合的背景下,Open-AutoGLM 构建了一套面向端侧大模型协同进化的技术基座。该架构通过动态资源调度、模型轻量化与联邦学习机制,实现云端与终端之间的高效协同。…

张小明 2026/3/5 4:04:57 网站建设

智慧团建网站首页山西网站建设情况汇总

一、项目背景某通用机械加工企业的小型铣床自动化升级项目中,需实现对铣床主轴转速的精准调速控制,以适配不同材质、不同刀具的加工需求。现场控制系统选用西门子 S7-300 PLC,该 PLC 搭载 Profibus DP 总线接口,具备稳定的多设备组…

张小明 2026/3/5 4:04:57 网站建设

和网站开发公司如何签合同做网站大概花多少钱

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个快速原型开发模板,用于在Spyder中快速测试数据科学想法。模板应包括:1. 数据加载和预处理的标准流程;2. 常用机器学习模型的快速实现&am…

张小明 2026/3/5 4:04:59 网站建设

公司网站建设服务费入什么科目廉江网站开发公司

ComfyUI Manager终极安装指南:新手必备的完整配置手册 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 你是否在使用ComfyUI时遇到过这样的困扰:想要安装新插件却不知道从何下手?面对…

张小明 2026/3/5 4:04:58 网站建设

昆明网站建设天软科技小程序商城怎么开通

抖音视频批量下载终极指南:3分钟搞定高清无水印内容保存 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为错过精彩的抖音视频而遗憾吗?想要批量收藏喜欢的主播作品却无从下手&am…

张小明 2026/3/5 4:05:01 网站建设