文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>poj 1236 Network of schools (强连通分支,缩点..

poj 1236 Network of schools (强连通分支,缩点..

时间:2010-05-06  来源:chhaya

http://acm.pku.edu.cn/JudgeOnline/problem?id=1236

题意:

网络中有一些学校,每个学校可以分发软件给其他学校。可以向哪个分发取决于他们各自维护的一个清单。

有两个问题,1:至少要copy多少份新软件给那些学校, 才能使得每个学校都能得到。

2:要在所有的学校的清单里面至少一共增加几项才能 使得  把软件给任意一个学校,所有的学校都能收得到。

 

思路:

       整个就是一个有向图啊, 学校是节点, 它的表里面有从他出发到其他节点的边。

       问题一: 要使每个学校都能收到,就是计算图里面一共有多少入度是0的点,这个好理解。

      问题二: 先学习下计算强连通分支的算法——kosaraju, 用两次dij的, 然后缩点,把每一块看成一个点,出来一个新的有向图。然后计算出度为0的入度为0的点各有多少, 大的那个就是答案。至于为什么,  还没搞明白。

做的时候用邻接表建两个图,kosaraju算法用到两次dfs, 第二次的时候,d[i]记录vi点在哪个连通分支里面,返回后, 枚举每个顶点统计每个分支的入度和出度,   为0的各有多少, 输出大的。 

值得注意的是, 当只有一个强连通分支的时候,就是缩点后只有一个点,虽然入度出度为0的都有一个,但是实际上不需要增加清单的项了,所以答案是1,0

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载