三角形划分区域

题目描述

用N个三角形最多可以把平面分成几个区域?

输入

输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量。然后是T组测试数据,每组测试数据只包含一个正整数N(1<=N<=10000)。

输出

对于每组测试数据,请输出题目中要求的结果。

样例输入

2

1

2

样例输出

2

8

解题思路:

本题是道简单的找规律题,一个三角形有2个区域,两个三角形有8个区域,三个有20个区域,四个三角形有38个,之后每多一个三角形所获得的最大区域就等于前一个三角形的个数i*3*2+前一个三角形得到的最大区域数b[i-1],定义数组b[n],表示n个三角形能得到的最大区域数,则有b[i]=b[i-1]+3*2*(i-1);

代码如下:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,i,c,b[10010]={0,2};
 5     for(i=2;i<=10000;i++)
 6     {
 7         b[i]=b[i-1]+3*(i-1)*2;
 8     }
 9     scanf("%d",&a);
10     while(a--)
11     {
12         scanf("%d",&c);
13         printf("%d\n",b[c]);
14     }
15     return 0;
16 }
时间: 2024-10-14 05:43:38

三角形划分区域的相关文章

递推算法之平面分割问题总结

这是一类问题,首先由直线划分区域到折线划分区域,再延伸到封闭图形划分区域,最后在推广为平面划分空间的问题. 一.n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域. 析:可能你以前就见过这题目,这充其量是一道初中的思考题.当有n-1条直线时,平面最多被分成了f(n-1)个区域.则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点. 这样就会得到n-1个交点.这些交点将第n条直线分为2条射线和n-2条线断.而每条射线和线断将以有的区域一分为二.这样就多出了

平面分割问题

(1) n条直线最多分平面问题 题目:n条直线,最多可以把平面分为多少个区域. 解析:       当有n-1条直线时,平面最多被分成了f(n-1)个区域.      则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点.      这样就会得到n-1个交点.这些交点将第n条直线分为2条射线和n-2条线断.      而每条射线和线断将以有的区域一分为二.这样就多出了2+(n-2)个区域. 故:f(n)=f(n-1)+n f(n-1)=f(n-2)+n-1 --        

BZOJ2458 [BeiJing2011]最小三角形

Description Xaviera现在遇到了一个有趣的问题. 平面上有N个点,Xaviera想找出周长最小的三角形. 由于点非常多,分布也非常乱,所以Xaviera想请你来解决这个问题. 为了减小问题的难度,这里的三角形也包括共线的三点. Input 第一行包含一个整数N表示点的个数. 接下来N行每行有两个整数,表示这个点的坐标. Output 输出只有一行,包含一个6位小数,为周长最短的三角形的周长(四舍五入). Sample Input 4 1 1 2 3 3 3 3 4 Sample

Directx11学习笔记【十】 画一个简单的三角形

本篇笔记要实现的是在屏幕上渲染出一个三角形,重点要学习的是渲染一个几何体的流程方式. 为了渲染几何图形,需要一个顶点缓存和一个描述顶点布局的输入层,还有着色器(主要是顶点着色器和像素着色器),下面来看看具体Demo的实现. 新建一个Win32项目 ,新建一个类我们叫做TriangleDemo,继承自前面教程我们实现的基类Dx11DemoBase. TriangleDemo.h头文件 #pragma once #include "Dx11DemoBase.h" class Triangl

数字三角形

数字三角形必须经过某一个点,使之走的路程和最大 输入格式: 第1行n,表示n行 (n<=25), 第2到n+1行为每个的权值,第n+2行为两个数x,y表示必须经过的点 输出格式: 输出最大值 样例1 输入: 2 1 1 1 1 1 输出: 2 //11 月 23 日 2015 #include <stdio.h> int num[26][26];//存储数字三角形的权值 int route[26][2];//记录临时最优路径 int n; int s1,s2;//以特殊点分为上半段和下半

!HDU 4380 三角屋内有奇数个宝藏的三角形有多少个-计算几何-(向量叉乘&amp;线段与点的关系&amp;暴力枚举)

题意:小明要买三座房子,这三个房子构成一个三角形,已知n个房子的坐标,任何三个房子都不在一条直线上,又已知有m个宝藏的坐标,问房子构成的三角形内有奇数个宝藏的三角形有多少个.数据范围:n(3~100),m(1~1000) 分析: 简单的计算几何.记住这题的做法. 三角形内的点的个数=上面的线段下面的点的个数 -- 下面两条线段下面的点的个数(或者下面一条线段减上面两条线段,看具体位置情况,所以直接取绝对值就好) n个点有n(n-1)/2条线段,不超过1W,枚举每条线段,再枚举每个宝藏的坐标(10

三角形测试用例

某函数规定:"输入三个整数 a . b . c 分别作为三边的边长构成三角形.通过程序判定所构成的三角形的类型 ".写出该函数,并为该函数进行测试用例设计. 正常的输入 三角形有: 直角三角形 钝角三角形 锐角三角形 等腰三角形 等边三角形 等腰直角三角形 #include "my_typedef.h" INT32 triangle_function( INT32 i32l, INT32 i32m, INT32 i32n ) { INT32 temp = 0; /*

叉乘、快速排斥与跨立实验及求取三角形面积

<pre name="code" class="cpp">叉乘 (一)判断方向 (二)判断线段相交 (三)求三角形面积 (一)判断方向 叉乘的性质如下: (1). P x Q > 0; 表示P在Q的顺时针方向; (2). p x Q < 0; 表示P在Q的逆时针方向; (3). P x Q = 0; 表示P和Q是共线的 P(x1,y1),Q(x2,y2), P*Q=x1y2-x2y1 判断结果三种状态 模版为: struct point {

NYOJ 815 三角形【海伦公式】

/* 关键点:海伦公式 解题人:lingnichong 解题时间:2014-10-04 21:48:47 解题体会:海伦公式的使用 */ 三角形 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 在数学中,如果知道了三个点的坐标,我们就可以判断这三个点能否组成一个三角形:如果可以组成三角形,那么我们还可以求出这个三角形的面积.作为一个大学生,如果给你三个点的坐标,你能快速判断出这三个点能组成一个三角形吗?如果可以组成三角形,你能快速求出三角形的面积吗? 输入 第一行输