HUD 1249 三角形

原题链接:点击此处

解题过程:公式:an=an-1+6(n-1)。   (n>=1)

公式推导:

由上图:

1个三角形至多把平面分为2部分

2个三角形至多把平面分为8部分(比上多6)

3个三角形至多把平面分为20部分(比上多12)

4个三角形至多把平面分为38部分(比上多18)

由此推测

n个三角形可把平面分为an

则an=an-1+6(n-1),其中a1=2

可解得此通项公式为an=3n(n-1)+2

即n=6时,a6=92

源代码:

#include <iostream>
#include <stdio.h>
using namespace std;
int sum;

int t(int b)
{
    if(b==1)
       {
           sum+=2;
           return sum;
        }
    sum+=6*(b-1);
    b--;
    t(b);
}

int main()
{
    int n,a;
    scanf("%d",&n);
    while(n--)
    {
        sum=0;
        scanf("%d",&a);
        t(a);
        printf("%d\n",sum);

    }
    return 0;
}

时间: 2024-10-11 01:20:42

HUD 1249 三角形的相关文章

hdu 1249 三角形 (递推)

三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4390    Accepted Submission(s): 2957 Problem Description 用N个三角形最多可以把平面分成几个区域? Input 输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只

HDU 1249 三角形的分割

可以将三角形的三条边一条一条加进图形中观察 假设添加第n个三角形 前n-1个三角形将区域划分为sum[n-1] 第n个三角形每条边最多能经过前n-1个三角形每条三角形的两条边 , 一条边切完增加了 2*(n-1)-1个区域 那么三条边切完内部图形增加了6*(n-1)-3个区域,而新三角形本身在三个顶角形成了三个新的区域 就共增加了6*(n-1)个区域 那么递推函数就是 sum[i] = sum[i-1] + 6*(i-1) 其实说的直接点就是利用欧拉公式解决问题 V(点) - E(边) + F(

hdu 1249 三角形

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1249 part=3*s*(s-1)+2 1 #include<stdio.h> 2 #include<math.h> 3 main() 4 { 5 int n,s,i,p,m; 6 while(~scanf("%d",&n)) 7 { 8 for(i=1;i<=n;i++) 9 { 10 scanf("%d",&s); 11

三角形(hdu1249)递推

三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5598    Accepted Submission(s): 3816 Problem Description 用N个三角形最多可以把平面分成几个区域? Input 输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据只包

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; /*