zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    [Oracle]Oracle的闪回归档
    【zabbix】snmp监控linux主机
    XFS文件系统
    PostgreSQL的使用向导
    PostgreSQL 12 YUM安装
    011.MySQL双主多从+Keepalived配置
    010.MySQL-Keepalived搭配脚本04
    009.MySQL-Keepalived搭配脚本03
    008.MySQL-Keepalived搭配脚本02
    007.MySQL-Keepalived搭配脚本01
  • 原文地址:https://www.cnblogs.com/tanglizi/p/8429006.html
Copyright © 2011-2022 走看看