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

图论笔记

全部笔记提示

接下来整理的笔记,有一个很重要的是初始化,如果不初始化,运行以后题目可能不会输出。

并查集笔记

算法解释

建边,由于挨个挨个查找比较麻烦所以要进行【路径压缩】,让每一个节点直接指向根节点。(之所以可以这么做,是因为题目只询问两点是否在同一集合)

代码解释

并查集类型的题主要由4个(包括初始化)函数构成:

  • init函数:初始化(最重要的一步,不添加会不输出)。
  • find函数:查找这个节点的根节点。
  • unite函数:建边,由于可能将两个图(更准确的来说是树)的根节点连到一起这时无论是哪一个节点(下称X)指向另一个节点(下称Y),根据【路径压缩】,指向Y的X其下的子节点会分别指向Y,所以我们要让节点最少的树的根节点指向节点更多的树的根节点。这样时间才会更快。(but,这个连接条件会因题目而异)。
    *same函数(因题而异):判断两点是否在一个集合内。

模板代码

P3367 【模板】并查集

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10; 
int n,m;
int fa[N],sz[N];
void init()
{for(int i=1;i<=n;i++){fa[i]=i;sz[i]=1;}
}
int find(int x)
{if(fa[x]!=x){fa[x]=find(fa[x]);}return fa[x];
}
void unite(int x,int y)
{int fx=find(x);int fy=find(y);if(fx==fy) return ;if(sz[fx]<sz[fy]){swap(fx,fy);}fa[fy]=fx;sz[fx]+=sz[fy];
}
bool same(int x,int y)
{return find(x)==find(y);
}
int main()
{cin>>n>>m;init();for(int i=1;i<=m;i++){int x,y,z;cin>>z>>x>>y;if(z==1){unite(x,y);}else{if(same(x,y)){cout<<"Y"<<"\n";}else{cout<<"N"<<"\n";}} }return 0;
}
http://www.jsqmd.com/news/389834/

相关文章:

  • 第2章 认识CPU-2.4 【实例】:在DOS实模式下读取4GB内存(1)
  • 不踩雷!继续教育专属AI论文网站 —— 千笔·专业论文写作工具
  • 用数据说话 8个AI论文工具:自考毕业论文+开题报告全测评
  • AI Agent 安全工程师:构建可信、可控、可审计的下一代智能体安全体系
  • 照着用就行:自考必备的降AI率软件 千笔·降AI率助手 VS 锐智 AI
  • 闭眼入!10个AI论文工具测评:本科生毕业论文写作必备指南
  • 一篇搞定全流程 8个AI论文软件:继续教育毕业论文+格式规范全测评
  • 一文讲透|9个降AI率工具:MBA论文降AI率全攻略
  • 参考文献崩了?千笔·专业论文写作工具,碾压级的AI论文软件
  • 智慧养殖牛只行为活动状态检测数据集VOC+YOLO格式2113张5类别
  • 闭眼入 8个降AIGC平台测评:专科生降AI率必备神器
  • 新手也能上手!万众偏爱的AI论文写作软件 —— 千笔
  • 详细介绍:谷歌驱动安装自动化
  • [特殊字符] 龍魂系统·审计内核宪法篇·第六章
  • 旧版联想电脑管家 3.0.0.5292 _吾爱破解_转
  • 什么是虚拟路由器
  • 先进工业网络是怎样的
  • 什么是小行星架构
  • Go接口与类型系统进阶:从底层实现到泛型实战
  • 什么是Xsec
  • 加油站自动车距提醒,保持安全停车距离,输出引导位置。
  • 什么是xFlow
  • 《敢问路在何方》MV制作教程:DeepSeek+百度AI+剪映,三款工具打造经典
  • 《实时渲染》第3章-图形处理单元-3.7几何着色器
  • 从零起步的SEO实战技巧,助力网站快速提升流量与曝光
  • python高校学生兼职平台
  • 2026年高性价比技术岗位深度解析:AI Agent工程师 vs Java工程师 —— 基于净收入、生活成本与职业前景的全面对比
  • 基于nodejs+vue的农村留守儿童教育帮扶系统
  • 基于nodejs+vue的残疾人综合帮扶系统
  • 互联网大厂Java面试实录:智慧物流场景下的核心技术与AI应用