• HDU-2050 折线分割平面 找规律&递推


    题目链接:https://cn.vjudge.net/problem/HDU-2050

    题意

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

    思路

    这里为了方便说明,假设有n个折线的部分最多的图叫做图n
    我们可以发现,任意图n中的每个射线都穿过了2n-2条射线,也就是任意两条射线两两相交

    设想现在我们在图n中放上两条射线,想让图n变成图n-1
    就必须让这两条射线每个都穿过图n中的2n条射线
    而且将要被穿过的两条旧射线之间必然有一个小部分,会被新射线穿过,变成两个小部分
    且最后被穿过的旧射线后的一个小部分,也会被新射线穿过,变成两个小部分
    这样一来,就可以写出递推公式:

    [a_n=a_{n-1}+4n-3 ]

    代码

    #include <cstdio>
    int n, ans[10000+5];
    void init(void){
        ans[1]=2;
        for (int i=2; i<10000+5; i++)
            ans[i]=ans[i-1]+4*i-3;
    }
    
    int main(void){
        init();
        scanf("%*d");
        while (scanf("%d", &n)==1 && n)
            printf("%d
    ", ans[n]);
    
        return 0;
    }
    
    
    Time Memory Length Lang Submitted
    None 1548kB 269 G++ 2018-02-07 22:59:09
  • 相关阅读:
    软件工程第三次作业
    软件工程第二次作业
    Java基础篇
    2018软件工程第一次作业
    网络基础知识(http请求)
    linux命令
    添加电子称程序
    多线程Demo
    关闭一个winform窗体刷新另外一个
    通过WebApi取出XML数据
  • 原文地址:https://www.cnblogs.com/tanglizi/p/8429006.html
Copyright © 2020-2023  润新知