题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1249
思路:
两个三角形相交时,如图:
新增部分与增加的交点数相同。
在画第n个三角形时,每条边最多与之前的n-1个三角形的各两条边相交,可以产生3*(2*(n-1))=6(n-1)个交点,即增加6(n-1)部分。
所以n个三角形最多把平面分为2+6*(1+2+…+(n-1))=2+3n(n-1)部分。
代码
#include<iostream>
using namespace std;
int main()
{
int T;
cin >> T;
while (T--)
{
int N;
cin >> N;
cout << 2 + 3 * N*(N - 1) << endl;
}
return 0;
}