zoukankan      html  css  js  c++  java
  • poj 2942 Knights of the Round Table Tarjan求点双联通分量+黑白染色二分图判断

        灰书例题,用染色判断二分图在点双联通分量找奇圈。

        写错了几次,返祖边不能入栈。

    ======

         题目建模利用补图,因为是圆桌,所以人在奇环上。

         其实返祖边可以入栈,我自己没判(DFN[i]<DFN[u])才萎掉的。

    ======

      再梳理一下。

      首先在有向图中Tarjan向下(if(!DFN[i]){)是从树边走,向上更新Low是沿着后向边(else{Low[u]=min(DFN[i],Low[u]);},前向边(DFN[i]<DFN[u])是要排除的。 

      我在else里一开始写了入栈和更新Low没排除前向边就错了。但是索性去掉入栈就AC了,是因为先前向边一定不会更新Low数组,(DFN[i]>DFN[u]>Low[u])。

      想想应该还是把那个判断(DFN[i]<DFN[u])写上比较好。

    Code

          一个萎掉的例子,处理一条返祖边祖先节点时会把一个已经在某一个BCC里孩子加到当前BCC,就是说只要返祖边向上的方向,不能要返祖边向下的方向。

    Code
  • 相关阅读:
    查看数据表的信息
    HR面试必问:你什么时候能到岗?聪明人都这样回答
    42种常见的HTTP响应代码
    Ubuntu环境下微信界面中间显示黑框和字体显示为白框等问题
    C# 开发电子印章制作工具 -- 附下载程序
    ofd文件拆分合并思路探索 -- 附下载程序
    利用防火墙出站规则解决Adobe Rader XI闪退问题
    记一次 Aximp.exe工具的使用
    MacOS Monterey 一键重置系统
    macbook m1 键盘进灰导致个别按键不灵敏解决方法
  • 原文地址:https://www.cnblogs.com/lijianlin1995/p/3379205.html
Copyright © 2011-2022 走看看