• POJ 1236


    POJ 1236

    题目大意:有n间学校,他们之间存在一些网络线路, 例如a->b 则是学校a可以传递信息到学校b(单向), 现在有一个软件需要被传达, 拷贝给一个学校, 让它去通过线路传给其他学校。问最少要拷贝给多少间学校, 是所有学校都可以被传到到(问题1), 问题二则是至少要构建多少条线路, 使得随便给一个学校软件, 都可以传达到其他学校?

    解:囧, 效率好慢。正解是用强连通分量算法缩点, 然后问题一是对应找入度为零的点的个数(显然, 入度为零则没人传递, 要作为一个源点), 这个倒是想出来了。而问题二自己犯傻×想错了性质, 我是找入度为零的点*2+有入度的点*1…, 这个显然不适用。 正确做法是在入度为零和出度为零的点找最大的那个(因为如果可以互相连通, 这两种点都不可能存在, 入度为零则是其他人到不了, 出度为零则是到不了其他人, 所以一直连边即可解决问题, 而入度零连出度零即可, 所以是取二者的最大值。特殊的, 当缩点后只剩下一个点, 则不用连边了, 答案是0非1!

    Tarjan版本也已经完成。

  • 相关阅读:
    OPC UA认识汇总
    linux内核铁三角-进程(任务)调度
    nginx配置文件
    git和coding的使用
    php处理mysql的结果集
    php中self和$this还有parent的区别
    Mysql练习题
    SEO优化
    css3 旋转 八仙桌
    laravel笔记
  • 原文地址:https://www.cnblogs.com/wmzisfoolish/p/2435178.html
Copyright © 2020-2023  润新知