http://acm.hdu.edu.cn/showproblem.php?pid=2050
直线分割平面的原理是 f(n)=f(n-1)+n
折线就是一次增加两条直线,但是由于另一端不能延伸,每两条比直线分割出的平面少2个。所以要减去2n。
#include <iostream>
using namespace std;
#define N 20005
__int64 num[N];
void init(){
num[0]=1;
int i;
for (i=1;i<N;i++)
num[i]=num[i-1]+i;
}
int main(){
int n,c;
scanf("%d",&c);
init();
while (c--){
scanf("%d",&n);
printf("%I64d\n",num[2*n]-2*n);
}
return 0;
}
到此把杭电上递推求解专题练习(For Beginner)都A掉了。