http://acm.hdu.edu.cn/showproblem.php?pid=2050
题解:
1.
直接找规律,观察可得,dp[1]=2,dp[2]=7,dp[3]=16,dp[4]=29
观察知:dp[i]=dp[i-1]+4*(i-1)+1
2.
如果以直线分割平面,第n条直线将最多产生n-1个交点,会多n-1+1个平面
折线也类似,第n条折线最多产生2*2*(n-1)个交点,会多4*(n-1)+1个平面。得dp方程:dp[i]=dp[i-1]+4*(i-1)+1
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
long long int dp[10005];
int main()
{
int c,n;
cin>>c;
dp[1]=2;
for(int i=2;i<10005;i++)
{
dp[i]=dp[i-1]+4*(i-1)+1;
}
while(c--)
{
cin>>n;
cout<<dp[n]<<endl;
}
return 0;
}