hdu 2050 折线分割平面(解析,直线,平行线,折线,三角形)
2013-01-31 17:53
465 查看
直线: | ||
条数 | 最多交点数 | 平面数 |
1 | 0 | 2 |
2 | 1 | f(1)+2 |
3 | 2 | f(2)+3 |
4 | 3 | f(3)+4 |
n | n-1(该条数的直线前面的直线总条数) | f(n-1)+增加的平面数=f(n-1)++(交点数+1)=f(n-1)+((n-1)+1) |
平行线: | |||
对数 | 条数 | 最多交点数 | 平面数 |
1 | 2 | 0 | 3 |
2 | 4 | 4=2*2 | f(1)+6=f(1)+3*2 |
3 | 6 | 8=4*2 | f(2)+10=f(2)+5*2 |
4 | 8 | 12=6*2 | f(3)+14=f(3)+7*2 |
n | 2*n | 单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2 | f(n-1)+单条直线增加的平面数*2=f(n-1)+(交点数+1)*2=f(n-1)+(2*(n-1)+1)*2 |
折线: | |||
折线数 | 所含直线数 | 最多交点数 | 平面数 |
1 | 2 | 0 | 2 |
2 | 4 | 4=2*2 | f(1)+5=f(1)+(2*3-1) |
3 | 6 | 8=4*2 | f(2)+9=f(2)+(2*5-1) |
4 | 8 | 12=6*2 | f(3)+13=f(3)+(2*7-1) |
n | 2*n | 单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2 | f(n-1)+(单条直线增加的平面数*2-1)=f(n-1)+((交点数+1)*2-1)=f(n-1)+((2*(n-1)+1)*2-1) |
三角形 | |||
个数 | 交点数 | 增加的平面个数 | 分割平面总数 |
1 | 0 | 1 | 2 |
2 | 2*3 | 3*3-3 | f(1)+3*3-3 |
3 | 4*3 | 5*3-3 | f(2)+5*3-3 |
4 | 6*3 | 7*3-3 | f(3)+7*3-3 |
n | (n*2-2)*3 | (2*n-1)*3-3 | f(n-1)+(2*n-1)*3-3=f(n-1)+6*(n-1) |
代码:
//2012.2.3
//寒假练习
//算法:递推
//f(n)=f(n-1)+((2*(n-1)+1)*2-1)
//解析整理于http://blog.sina.com.cn/s/blog_83ccc39d0100z3l9.html
#include<iostream>
using namespace std;
int main()
{
int c,n,i;
int f[10001]={0,2,7};
for(i=2;i<10001;i++)
{
f[i]=f[i-1]+(2*(i-1)+1)*2-1;
}
cin>>c;
while(c--)
{
cin>>n;
cout<<f[n]<<endl;
}
return 0;
}
相关文章推荐
- HDU 2050折线分割平面(解析,直线,平行线,折线,三角形)
- hdu 2050 折线分割平面(解析,直线,平行线,折线,三角形)
- HDU 2050 折线分割平面(根据直线递推)
- hdu 2050折线分割平面(递推找规律)
- HDU--2050 折线分割平面
- hdu 2050 折线分割平面 (递推)
- 直线,椭圆,三角形,折线分割平面问题
- HDU 2050 折线分割平面
- 递推 Problem M:折线分割平面(HDU 2050)
- hdu-2050-折线分割平面
- HDU 2050 折线分割平面
- hdu 2050 折线分割平面
- 折线分割平面 HDU - 2050
- hdu 2050 折线分割平面
- 【HDU 2050】折线分割平面
- hdu-2050-折线分割平面
- hdu,2050,折线分割平面
- hdu 2050 - 折线分割平面
- 杭电hdu_2050_折线分割平面
- hdu 2050 折线分割平面(递推)