zoukankan      html  css  js  c++  java
  • 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;    
    }
  • 相关阅读:
    网络爬虫的基本原理(一)
    灵光一闪-软件应用
    sql语句变量定义和样例
    windows+linux环境部署搭建
    jdk1.6安装
    系统部署
    tomcat部署
    maven各种插件在总结
    maven项目tomcat部署问题
    两种数据源
  • 原文地址:https://www.cnblogs.com/CheeseIce/p/9736026.html
Copyright © 2011-2022 走看看