P2789 直线交点数
考点
- 排列组合
题解
1 |
|
思路
无三线共点的含义是,当前直线要么与其他直线相交产生新的交点,要么与其他直线平行
根据这一特性,考虑采用分组的方式将情况分类
假设(x)代表该组内有x条直线平行,不在一个组内的直线相交
比如(2)、(3)代表第1个组内有2条直线平行,第2个组内有3条直线平行
第1个组与第2个组相交,得到2 * 3 = 6个交点
接下来以样例n == 4举例,有{0、3、4、5、6}共5种交点数
通过观察可以发现,实际上就是对整数n进行拆分,对每一种可行的拆分方案执行如下操作:
假设有拆分方案
arr={1,1,2},实际上就是(1)、(1)、(2)令初始时
cnt = 1 = arr[0],记录需要被交的直线个数;tot记录交点数从
arr[1]开始,此时arr[1] * cnt = 1 * 1 = 1,tot += 1,cnt += arr[1]代表
(1)已与(1)相交走到
arr[2],此时arr[2] * cnt = 2 * 2 = 4,tot += 4代表
(2)已与(1)、(1)相交