zoukankan      html  css  js  c++  java
  • CSU

    一条‘Z’形线可以将平面分为两个区域,那么由N条Z形线所定义的区域的最大个数是多少呢?每条Z形线由两条平行的无限半直线和一条直线段组成

    Input

    首先输入一个数字T(T<100),代表有T次询问 每次询问输入一个数字N(N<1e8),代表有N条Z形线

    Output

    对于每次询问,在一行输出N条‘Z’形线所能划分的区域的最大个数为多少

    Sample Input

    2
    1
    2

    Sample Output

    2
    12
    

    Hint

    分析:

    首先考虑一个类似的问题:

    有N组直线,每组都由3条平行的直线构成,3条直线的间距可以调整。

    那么N组直线最多划分出多少个区域?

    这个问题就很容易求出来,3n(3n-1)/2+1

    本题的答案,就是把每组3条平行直线变成Z,也就是在3n(3n-1)/2+1的基础上再减2n即可

    所以:(9*n*n-7*n+2)/2

    code:

    #include<stdio.h>
    #include<algorithm>
    #include<memory.h>
    #include<math.h>
    using namespace std;
    typedef long long LL;
    #define INF 0x3f3f3f3f
    #define max_v 1005
    int main()
    {
        int t;
        scanf("%d",&t);
        LL n;
        while(t--)
        {
            scanf("%lld",&n);
            printf("%lld
    ",(9*n*n-7*n+2)/2);
        }
        return 0;
    }
  • 相关阅读:
    NLB网路负载均衡管理器详解
    Nginx配置详解
    Nginx代理功能与负载均衡详解
    .Net使用RabbitMQ详解
    说说面向服务的体系架构SOA
    .Net中的RealProxy实现AOP
    搭建自己的Nuget服务器
    VMware虚拟网络连接模式详解(NAT,Bridged,Host-only)
    JsonUtils
    Linux三剑客
  • 原文地址:https://www.cnblogs.com/yinbiao/p/9371258.html
Copyright © 2011-2022 走看看