Description
Solution
手摸一下前几个数,1,2,4,8,16……
嗯,好!稳了!(2^{n - 1}),交一发,全 (WA)!
在推一下 (n = 6),等于 (31)!!!
于是我重新思考一下。
假设 (n) 条线不相交,那么每增加一条线会多一个部分,每两个点组成一条线段,这样的话区域个数为 (1 + C_n^2)。
但是线段与线段也会相交,每当有两条线段相交就会多出一个区域,每 4 个点组成 2 条线段,组成 1 个交点,所以答案再加上 (C_n^4) 即可。
Code
这代码不放也罢。
#include <iostream>
#include <cstdio>
using namespace std;
int n;
int main(){
while(scanf("%d", &n) != EOF)
printf("%d
", 1 + n * (n - 1) / 2 + n * (n - 1) * (n - 2) * (n - 3) / 24);
return 0;
}