zoukankan      html  css  js  c++  java
  • 2016HUAS_ACM暑假集训4B

    这种数学推理题目题意极其明显,在做的时候,可以多写几组,这样找起规律来会容易些。概括起来就是:题意简单暴力,案例毫无价值。

    一个三角形最多可以把一个平面分成两部分,两个三角形最多是8(2+6)部分,而三个,最多是20(2+6*(1+2))部分,于是可以猜想N个三角形分割平面最多是2+6*(1+2+...+(N-1))。得到通项2+6*(N*(N-1)/2)。可以打一下表,因为这比较靠谱,递归比较耗时间。这里求出了通项,而且不是很复杂,所以不打表应该也差不多(我还没对比过)。

    Sample Input

    2                              //组数T

    1                             //三角形个数N

    2

    Sample Output

    2

    8

     1 #include<iostream>
     2 using namespace std;
     3 int T,N,i,ans;
     4 
     5 void slove()
     6 {
     7     ans=2+6*((N*(N-1))>>1);
     8     cout<<ans<<endl;
     9 }
    10 
    11 int main()
    12 {
    13     cin>>T;
    14     while(T--)
    15     {
    16         cin>>N;
    17         slove();
    18     }
    19     return 0;
    20 }
    View Code
  • 相关阅读:
    基础表达式和运算符
    原型链(_proto_) 与原型(prototype) 有啥关系?
    插件模板
    加减plugin
    原生选项卡、手风琴
    前端基础问题(有答案)
    结构图
    Java环境配置小记
    函数
    砝码称重
  • 原文地址:https://www.cnblogs.com/ankelen/p/5726196.html
Copyright © 2011-2022 走看看