poj2186

题意:

      每一头牛的愿望就是变成一头最受欢迎的牛。现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎。 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认为牛C受欢迎。你的任务是求出有多少头牛被所有的牛认为是受欢迎的。
题解:
      这道题缩点还是挺明显的
      先用tarjan缩点(显然在环上的点要么全部是答案要是全部不是)
      然后判断一下图是否联通(不管边的方向)
      要是不连通那么一定是无解的
      要是联通就数出度为0的点有几个
      如果有且仅有一个就满足条件(其实tanjan的题好多都是根据入度和出度来判断性质的)
      不过还是来证明一下吧
      首先,证必要性:如果有两个点出度为0,那么这两个点中的任意一个点都不被另一个点欣赏
      然后,证充分性:如果只有一个点出度为0,那么我们考虑把它拿到根处
      显然他的儿子一定是都指向他的(因为它出度为0)
      那考虑他儿子的儿子,如果是从儿子指向儿子的儿子
      那么其下面一定有一个点出度为0了
posted @ 2018-03-09 13:53  尹吴潇  阅读(86)  评论(0编辑  收藏  举报