题目:数出类似下面的图中共有多少个三角形。(标号是后面我的算法用的) 手动算法:以每个最小块为单位,数出由1个、2个、……、n个单位组成的三角形数量。
提出的程序算法和数据结构:(简单的枚举,高中竞赛渣不会啥高级算法了)
输入点的数量,以及有几个点在一条线上(由一长条线连起来)的信息。例如:共11个点,0-1-7、0-2-8、……都在一条线上。
枚举所有不同的三个点的集合,判断是否为三角形:
若三点在同一条线上(即包含在上述输入的一个集合里),三角形三点不能成一条直线,否决。
若其中两个点不在任何一个相同集合里,即两点之间没有线连接,否决。
否则(两两在同一集合,三个不在同一集合),数一个三角形。