杭电2050
此题思路:先求直线最多能把平面分成多少个部分设为m个!(m=a[i-1]+i;)
再求折线把平面分的个数n(n=a[2*m]-2*m;)
*注意:一个折线两条直线!!!
#include<iostream>
using namespace std;
int main()
{
int n,m,i;__int64 a[20005];
cin>>n;
getchar();
while(n--)
{
cin>>m;
a[1]=2;
a[2]=4;
for(i=3;i<=m*2;i++)
a[i]=a[i-1]+i;
a[2*m]=a[2*m]-m*2;
printf("%I64d\n",a[2*m]);
}return 0;
}
联系方式