• 三角形


    http://acm.hdu.edu.cn/showproblem.php?pid=1249

    三角形

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 5619    Accepted Submission(s): 3826


    Problem Description
    用N个三角形最多可以把平面分成几个区域?
     
    Input
    输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000).
     
    Output
    对于每组测试数据,请输出题目中要求的结果.
     
    Sample Input
    2 1 2
     
    Sample Output
    2 8
     

     我就是来水一水

    证法1:
    设n个三角形最多将平面分成an个部分。
    n=1时,a1=2;
    n=2时,第二个三角形的每一条边与第一个三角形最多有2个交点,三条边与第一个三角形最多有2×3=6(个)交点。这6个交点将第二个三角形的周边分成了6段,这6段中的每一段都将原来的每一个部分分成2个部分,从而平面也增加了6个部分,即a2=2+2×3。
    n=3时,第三个三角形与前面两个三角形最多有4×3=12(个)交点,从而平面也增加了12个部分,即: a3=2+2×3+4×3。
    ……
    一般地,第n个三角形与前面(n-1)个三角形最多有2(n-1)×3个交点,从而平面也增加2(n-1)×3个部分,故
    an=2+2×3+4×3+…+2(n-1)×3
    =2+〔2+4+…+2(n-1)〕×3
    =2+3n(n-1)=3n^2-3n+2。

    证法2:
    1个三角形把平面分成2部分
    第二个三角形和第一个三角形最多有6个交点,最多可以分成8个平面,增加了6个
    第三个三角形和前两个三角形每一个最多都能有6个交点,一共多了2x6=12个交点,平面就能多2x6=12个
    以此类推,第N个三角形可以把平面最多分成:
    2+1x6+2x6+3x6+......+(n-1)x6
    =2+6x(1+2+3+......+(n-1))
    =2+3n(n-1)

    看数据用longlong
     1 #include<cstdio>
     2 using namespace std;
     3 int main()
     4 {
     5     int t, n;
     6     scanf("%d",&t);
     7     while(t--)
     8     {
     9         scanf("%d",&n);
    10         long long l = 2+3*n*(n-1);
    11         printf("%lld
    ",l);
    12     }
    13     return 0;
    14 }
  • 相关阅读:
    将decimal类型的数据转成2.12这样价钱的显示方式
    设置图片域
    SQLServer学习笔记系列1
    CREATE SCHEMA
    ListView控件的Insert、Edit和Delete功能第三部分(自我总结)
    ListView控件的Insert、Edit和Delete功能(第二部分)
    ListView控件的Insert、Edit和Delete功能(第一部分)
    IOS 开发 网络详解(十二)AFNetworking总结
    IOS 开发 网络详解(十一) AFURLSessionManager
    IOS 开发 网络详解(10)--- AFNetWorking概述
  • 原文地址:https://www.cnblogs.com/shanyr/p/4674391.html
Copyright © 2020-2023  润新知