hdu acm steps 2.2.5

来源:互联网 发布:finale 软件 编辑:程序博客网 时间:2024/05/16 18:07

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1290

递归题,当第n个面去切前n-1个面时会得到最大面数。

在平面中容易推得最大面数的动态转移方程为:temp[n]=temp[n-1]+n;

   那么当第n个面去切前n-1个面时 在这个面上产生了n-1条线即:

    f[n]=f[n-1]+temp[n-1];

 

下面是AC代码:

#include<iostream>using namespace std;__int64 f[1001];__int64 temp[1001];int main(){int n;int i,j;int t,max;f[1]=2;f[2]=4;temp[1]=2;temp[2]=4;for(i=3;i<=1000;i++){temp[i]=temp[i-1]+i;}for(i=3;i<=1000;i++){f[i]=f[i-1]+temp[i-1];}while(cin>>n){printf("%I64d\n",f[n]);}return 0;}


 

原创粉丝点击