【图论】判环问题

(未更新完、做到相关题再更新相关部分

文章目录

无向图判断有无环并输出环上点

例题:H. Mad City

利用变种拓扑排序,先把度为1的点存入队中,每次取出队头,遍历邻接点,再将该条边删除也就是将邻接点度数减一,直至对空,然后所有度数不为0的点都是在环上的点,输出即可

code

cpp 复制代码
for (int i = 0; i < n; i ++ )
{
    int x, y;
    cin >> x >> y;
    add(x, y), add(y, x);

    ind[x] ++, ind[y] ++ ;
}
    
function<void()> topsort = [&]()
{
    queue<int> q;
    for (int i = 1; i <= n; i ++ )
        if (ind[i] == 1) q.push(i);

    while (q.size())
    {
        int u = q.front();
        q.pop();

        for (int i = h[u]; ~i; i = ne[i])
        {
            int v = e[i];
            if (-- ind[v] == 1) q.push(v);
        }
    }
};

topsort();

for (int i = 1; i <= n; i ++ )
	if (ind[i] > 1) ans = true;
相关推荐
weixin_413063216 分钟前
记录 MeshFlow-Online-Video-Stabilization 在线稳像
算法·meshflow·实时防抖
会编程的土豆25 分钟前
【数据结构与算法】动态规划
数据结构·c++·算法·leetcode·代理模式
炘爚36 分钟前
深入解析printf缓冲区与fork进程复制机制
linux·运维·算法
迈巴赫车主2 小时前
蓝桥杯19724食堂
java·数据结构·算法·职场和发展·蓝桥杯
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 78. 子集 | C++ 回溯算法题解
c++·算法·leetcode
Kethy__2 小时前
计算机中级-数据库系统工程师-数据结构-查找算法
数据结构·算法·软考·查找算法·计算机中级
所以遗憾是什么呢?2 小时前
【题解】Codeforces Round 1081 (Div. 2)
数据结构·c++·算法·acm·icpc·ccpc·xcpc
xiaoye-duck3 小时前
《算法题讲解指南:递归,搜索与回溯算法--综合练习》--14.找出所有子集的异或总和再求和,15.全排列Ⅱ,16.电话号码的字母组合,17.括号生成
c++·算法·深度优先·回溯
OOJO3 小时前
c++---vector介绍
c语言·开发语言·数据结构·c++·算法·vim·visual studio
茉莉玫瑰花茶3 小时前
数据结构 - 并查集
数据结构