hdu 2050.折线分割平面

http://acm.hdu.edu.cn/showproblem.php?pid=2050

思路:直线分割平面的特殊情况

    第n个折线第时候:

  1. 折线的第一个射线与原有的(n-1)个折线的2(n-1)条边相交,产生2(n-1)-1个线段(由两个交点形成,将所在区域一分为二产生2(n-2)个新区域)和1个射线(产生1个新区域)和1个特殊的线段(由射线的起点和交点形成,这个特殊的线段在只有自己的时候不会产生新的区域,但是在与本折线的另一个射线所产生的特殊线段组合后会产生一个新区域)
  2. 折线的第二个射线与原有的(n-1)个折线的2(n-1)条边相交,产生2(n-1)-1个线段和1个射线和1个特殊的线段(与本折线的第一条射线产生特殊线段组合共同产生1个新区域)

公式
  f(n)=f(n-1)+{[2(n-1)-1+1]+[2(n-1)-1+1]+1}
        =f(n-1)+4(n-1)+1                      
        =f(n-2)+4(n-2)+1+4(n-1)+1

   ....

     =2n^2-n+1

#include<iostream>
#include<string.h>
using namespace std;
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
__int64 dp[10005]={0};
int main()
{
    int t;    
    int a;
    scanf("%d",&t);
    while(t--)
    {
        cin >> a;
        cout << 2*a*a-a+1<<endl;
    
    }
    return 0;                 
}

猜你喜欢

转载自www.cnblogs.com/icfir/p/9085028.html
今日推荐