之前做过直线与折线分割平面的题,本想向那边转化,但不知道是不是吃错了药头晕的不行的原因,想了很长时间,结果还是wa了,只好看人家的思路才做出来,唉。。。
引用下:
/* 每条边最多与前面已画的(n—1)个三角形的各两条边相交, 第n个三角形每条边最多与2*(n-1)条边相交。 对于每条边,它所截出的区域(不算第n个三角形的角)有2*(n-1)-1个, 于是3条边可截出6*(n-1)-3个区域,再加上3个角即可多出6*(n-1)个区域。 能新增加6(n-1)部分。因为1个三角形时有2部分, 所以n个三角形最多将平面分成的部分数是 2+6×[1+2+…+(n—1)] */最后代码备份
#include<cstdio>
using namespace std;
int main()
{
int n,num;
scanf("%d",&num);
while(num--)
{
scanf("%d",&n);
printf("%d\n",2+3*n*(n-1));
}
return 0;
}