单色三角形问题

空间里有n个点,任意三点不共线。每两个点之间都用红色或者黑色线段链接。如果一个三角形的三条边同色,责成这个三角形是单色三角形。对于给定的红色线段列表,找出单色三角形的个数。

 

1,如果直接找需要枚举所有的三个点的组合,有C(n,3)种组合,当n比较大的时候,需要枚举的组合很多,复杂度为O(n3);

2,但是在遍历每个点的时候都可以枚举颜色不同的两条边。则每个点上不同的颜色的三角形有R*B,R为红色边的个数,B为黑色边的个数。所有点上的不同颜色边组之和为Q,则总共有C(n,3)-Q/2种相同颜色的边。时间复杂度变为了O(n)

 

本文在草稿箱放了n久,忘了

代码略

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章