单色三角形问题结论
2015-10-12 10:41
232 查看
问题模型:空间里有n个点,任意三点不共线。每两个点之间都用红色或者黑色线段链接。如果一个三角形的三条边同色,责成这个三角形是单色三角形。对于给定的红色线段列表,找出单色三角形的个数。
分析:如果直接找需要枚举所有的三个点的组合,有C(n,3)种组合,当n比较大的时候,需要枚举的组合很多,复杂度为O(n3);但是在遍历每个点的时候都可以枚举颜色不同的两条边。则每个点上不同的颜色的三角形有R*B,R为红色边的个数,B为黑色边的个数。所有点上的不同颜色边组之和为Q,则总共有C(n,3)-Q/2(容斥)种相同颜色的边。时间复杂度变为了O(n)
对于n点染m色能够出现同色三角形的问题:
可知:3点染1色可出现同色三角形
r1 = 3
6点染2色可出现同色三角形
r2 = 6
17点染3色可出现同色三角形
r3 = 17
...................
可知:rn = n*(rn-1 - 1)+2;满足次关系式时可出现同色三角形,其中rn为点的个数,n个颜色种数
分析:如果直接找需要枚举所有的三个点的组合,有C(n,3)种组合,当n比较大的时候,需要枚举的组合很多,复杂度为O(n3);但是在遍历每个点的时候都可以枚举颜色不同的两条边。则每个点上不同的颜色的三角形有R*B,R为红色边的个数,B为黑色边的个数。所有点上的不同颜色边组之和为Q,则总共有C(n,3)-Q/2(容斥)种相同颜色的边。时间复杂度变为了O(n)
对于n点染m色能够出现同色三角形的问题:
可知:3点染1色可出现同色三角形
r1 = 3
6点染2色可出现同色三角形
r2 = 6
17点染3色可出现同色三角形
r3 = 17
...................
可知:rn = n*(rn-1 - 1)+2;满足次关系式时可出现同色三角形,其中rn为点的个数,n个颜色种数
相关文章推荐
- spring mvc controller接收请求值及controller之间跳转及传值
- MyEclipse破解激活工具
- msm8974 camera driver添加新摄像头kernel hal修改
- ORA-01691: unable to extend lob segment 问题解决
- Xcode模拟器The operation couldn’t be completed. (LaunchServicesError error 0.)
- nodeclub route
- 让程序员少走弯路的14个忠告
- Android系统中标准Intent的使用
- [转]数据挖掘学习之数据立方体计算方法
- mysqldump命令导入导出数据库方法与实例汇总
- < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
- cprintf 与 printf 的区别:
- 黑马程序员——JavaSE之集合框架总结二
- 码农、黑客和2B程序员之间的区别
- php网站判断用户是否是手机访问的方法
- JavaScript 跨域请求
- 喷了 这哥哥是谁
- Android开发之通过Intent启动系统应用的协议
- 我为什么要开始写技术博客?
- CDN好处和优点