首先总结下传递闭包的知识,应该说是Floyd-Warshall的一个应用,NOCOW上写的很好,直接贴链接,以后温故知新:
http://www.nocow.cn/index.php/Floyd-Warshall%E7%AE%97%E6%B3%95(蓝点后继续提炼!)
题 意:给牛的数量n和m对输赢关系,若n头牛之间都存在输赢关系(可传递,例如A赢B,B赢C,那么可以认为A赢C),则该牛名次确定。
思 路:首先传递闭包,确定是否存在关系。由于题目说是输赢都可,所以和一般的传递闭包有细微差别,iT[i][j]||iT[j][i]即可。
学习点:有向图的传递闭包,对Floyd-Warshall算法更好地理解。
源代码: