zoukankan      html  css  js  c++  java
  • D

    Description

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

    Input

    输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。 

    Output

    对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。 

    Sample Input

    2
    1
    2

    Sample Output

    2
    7
    这道题看了题解才写出来,有两种做法。
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<stdlib.h>
    #include<vector>
    #include<queue>
    #include<cmath>
    using namespace std;
    #define maxn 10010
    #define oo 0x3f3f3f
    int n;
    int k;
    long long dp[maxn];
    void init()
    {
        for(int i=3; i<=maxn; i++)
            dp[i] = ((i-1)*2-1)*2 + dp[i-1]+3;
    }
    int main()
    {
        int t,m;
        scanf("%d",&t);
    
        while(t--)
        {
            scanf("%d",&m);
            dp[1] = 2;
            dp[2] = 7;
    
            init();
    
            printf("%I64d
    ",dp[m]);
    
        }
        return 0;
    }///用递推来写
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<stdlib.h>
    #include<vector>
    #include<queue>
    #include<cmath>
    using namespace std;
    #define maxn 10010
    #define oo 0x3f3f3f
    int n;
    int k;
    long long dp[maxn];
    int main()
    {
        int t;
        long long m;
        scanf("%d",&t);
    
        while(t--)
        {
            scanf("%I64d",&m);
      
    
            printf("%I64d
    ",2*m*m-m+1);
    
        }
        return 0;
    }
  • 相关阅读:
    静态区,堆,栈
    C语言位操作
    引用形参
    联合体/共同体 union
    typedef的使用
    有源晶振和无源晶振
    什么是SMT钢网
    点名游戏~自己先作
    我同学——应聘阿里巴巴之经过
    阳光明媚的一天~|~
  • 原文地址:https://www.cnblogs.com/biu-biu-biu-/p/5744508.html
Copyright © 2011-2022 走看看