1290 ACM 数学

Posted cheeseice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1290 ACM 数学相关的知识,希望对你有一定的参考价值。

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1290

思路:先在草稿纸上画,找规律。

规律:

a[n],b[n],c[n],分别代表一条直线分成的段数,二维的块数,三位的块数。

先考虑二维(直线)的情况,n个点把直线分成的份数a[n]=n+1。二维(平面)的情况,考虑n条直线把一个平面分成的份数最多(表示为b[n])时,第k条直线应该与前k-1条直线相交于不同的k-1个点,这k-1个点将第k条直线分成a[k-1]部分,每一部分会把所在的平面分成两份,所以有b[n]=b[n-1]+a[n-1]。

同理三维情况c[n]=c[n-1]+b[n-1]。(每次要最大,我们都希望与每块都相交。

Code:

#include <cstdio>
#include<iostream>

using namespace std;

int main()
{
    int b[1002],c[1002];
    int i,n;
    while(cin>>n&&n>0)
    {
        b[1]=c[1]=2;
        for(i=2;i<=1005;i++)
            {
                b[i]=b[i-1]+i;
                c[i]=c[i-1]+b[i-1];
            }
        cout<<c[n]<<endl;
    }
    return 0;    
}

 

以上是关于1290 ACM 数学的主要内容,如果未能解决你的问题,请参考以下文章

PHP 简介

队列之blah集合

css3-动画(animation)

第七章随笔

Java基础(正式上课第二天)

moon javaScript简介 第1章和 在HTML中使用javaScript第2章