算法训练营day69

查并集:107. 寻找存在的路径 (kamacoder.com)

复制代码
#include<iostream>
#include<vector>

using namespace std;

vector<int> father(101, 0);

void init() {
    for(int i = 1;i <= 101;i++) {
        father[i] = i;
    }
}

int find(int v) {
    if(v == father[v]) return v;
    else return father[v] = find(father[v]);
}

void join(int u, int v) {
    u = find(u);
    v = find(v);
    if(u == v) return;
    father[v] = u;
}

bool isSame(int u, int v) {
    u = find(u);
    v = find(v);
    if(u == v) return true;
    else return false;
}

int main() {
    int N, M;
    cin >> N >> M;
    init();
    while(M--) {
        int i, j;
        cin >> i >> j;
        join(i, j);
    }
    int start, end;
    cin >> start >> end;
    if(isSame(start, end)) cout << 1 << endl;
    else cout << 0 << endl;
    return 0;
}
相关推荐
渡我白衣13 小时前
计算机组成原理(8):各种码的作用详解
c++·人工智能·深度学习·神经网络·其他·机器学习
小李小李快乐不已13 小时前
二叉树理论基础
数据结构·c++·算法·leetcode
仰泳的熊猫13 小时前
1149 Dangerous Goods Packaging
数据结构·c++·算法·pat考试
ALex_zry13 小时前
现代C++如何解决传统内存分配器的核心痛点
java·c++·spring
wangnaisheng13 小时前
彩虹编码映射实现:C++与C#
c++·c#
waves浪游13 小时前
进程控制(下)
linux·运维·服务器·开发语言·c++
兵哥工控13 小时前
mfc两个线程的创建、启动、安全结束实例
c++·mfc·多线程·线程安全退出
小龙报13 小时前
【算法通关指南:算法基础篇 】双指针专题:1.唯一的雪花 2.逛画展 3.字符串 4.丢手绢
c语言·数据结构·c++·人工智能·深度学习·算法·信息与通信
Yusei_052313 小时前
Redis核心特性与应用全解析
开发语言·数据库·c++·redis·缓存
Larry_Yanan21 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习