首页 > ACM题库 > HDU-杭电 > HDU 1249 三角形-递推-[解题报告] C++
2013
12-04

HDU 1249 三角形-递推-[解题报告] C++

三角形

问题描述 :

用N个三角形最多可以把平面分成几个区域?

输入:

输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).

输出:

对于每组测试数据,请输出题目中要求的结果.

样例输入:

2
1
2

样例输出:

2
8

2011-12-20 13:33:58

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1249

题意:中文。

mark:前面假设有n-1个三角形,考虑一个新三角形每个边切已有边交点为2(n-1),新增小面为3*(2(n-1)-1),再加新增三个角,共新增小面6(n-1)块。所以dp[n] = dp[n-1]+6(n-1)。解得dp[n] = 3*n^2-3n+2。

代码:

# include <stdio.h>


int main()
{
    int T, n ;
    scanf ("%d", &T) ;
    while (T--)
    {
        scanf ("%d", &n) ;
        printf ("%d\n", 3*n*n-3*n+2) ;
    }
    return 0 ;
}