欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

折线分割平面(HDU-2050)

发布时间:2025/3/17 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 折线分割平面(HDU-2050) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Problem Description

    我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。

Input

    输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。

Output

    对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。

Sample Input

2
1
2

Sample Output

2
7

思路:

  • 先分析直线分割平面:增加第n条直线时,与之前的直线最多有n-1个交点,此时分出的部分多出了(n-1)+1
  • 再分析折线分割平面:增加第n条折线时,此时与图形最多有2*2(n-1)个交点,此时分出的部分多出了2*2(n-1)+1
  • 所以可推:

        f(n)=2,n=1

        f(n)=7,n=2

        f(n)=f(n-1)+4*(n-1)+1,n>=3

    Source Program

    #include<iostream> using namespace std; long long a[10001]; int main() {int c,n;int i;cin>>c;while(c--){cin>>n;a[1]=2;a[2]=7;for(i=3;i<=n;i++)a[i]=a[i-1]+4*(i-1)+1;cout<<a[n]<<endl;}return 0; }

     

    新人创作打卡挑战赛发博客就能抽奖!定制产品红包拿不停!

    总结

    以上是生活随笔为你收集整理的折线分割平面(HDU-2050)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。