HDU-2050-折线分割平面

对于第n-1条折线,把平面分割的的块数为f(n-1),那么第n条折线想要切割出最多的块数,就要和之前的n-1条折线的2*(n-1)条射线相交,这样的话,交线就是4*(n-1)条。
每条交线产生一个块,对于顶角的交线,新产生一块,且4*(n-1)条折线各产生一块,即4*(n-1)+1块。
f(n)=f(n-1)+4*(n-1)+1
=f(n-2)+4*(n-2)+4*(n-1)+2

=f(1)+4*(n-(n-1))+4*(n-(n-2)+…+4*(n-1)+n-1
=2+4*((n-1)*(n-1-1)/2)+n-1
=2 * n2 - n + 1

#include <cstdio>
#include <cmath>
int main()
{
    int n, m;
    scanf("%d", &n);
    while (n--) {
        scanf("%d", &m);
        printf("%lld
", 2 * m * m - m + 1);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xyqxyq/p/10350123.html