题意是:有向图,给n只牛、m个喜欢的关系(比如1 2就是牛1喜欢牛2),求有几只牛被所有牛喜欢。自己是喜欢自己的。如果1喜欢2,2喜欢3,那么1也喜欢3。
做法是:找连通分量,缩点,找缩点后出度为0的点。如果只有一个,该连同分量内牛的数目即为所求。如果有多个或没有,无解。
我开始想能不能找缩点后入度为连通分量数-1的点,WA了。原因是,有的牛可能是间接被喜欢的。比如,给3只牛,2条边。1喜欢2,2喜欢3,缩点后有3个连通分量,牛3的入度是1而不是2。
用WTommy's Trouble 的代码 改改就过了,把入度改成了出度而已