zoukankan      html  css  js  c++  java
  • hdu1290

    由二维的切割问题可知,平面切割与线之间的交点有关,即交点决定射线和线段的条数,从而决定新增的区域数。
    当有n-1个平面时,切割的空间数为f(n-1)。要有最多的空间数。则第n个平面需与前n-1个平面相交,且不能有共同的交线。即最多有n-1 条交线。而这n-1条交线把第n个平面最多切割成g(n-1)个区域。

    (g(n)为直线分平面的个数)此平面将原有的空间一分为二,则最多添加g(n-1)个空间。
    故:

    f=f(n-1)+g(n-1)   (g(n)=n(n+1)/2+1)
    =f(n-2)+g(n-2)+g(n-1)
    ……
    =f(1)+g(1)+g(2)+……+g(n-1)
    =2+(1*2+2*3+3*4+……+(n-1)n)/2+(n-1)
    =(1+2^2+3^2+4^2+……+n^2-1-2-3-……-n )/2+n+1

    =(n^3+5n)/6+1

    /** rief hdu 1290
     *
     * param date 2014/7/25
     * param state AC
     * 
    eturn
     *
     */
    
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    int main()
    {
        //cout << "Hello world!" << endl;
        //freopen("input.txt","r",stdin);
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            cout<<(n*n*n+5*n)/6+1<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    第3章 Python的数据结构、函数和文件
    字符与编码
    第2章 IPython和Jupyter
    第1章 准备工作
    (转)详解Python的装饰器
    (转)Python中的split()函数
    5.5 用户定义的可调用类型
    2.6 序列的增量赋值
    Zookeeper简析
    Dubbo-服务引入源码分析
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7068936.html
Copyright © 2011-2022 走看看