递推 N三角形问题
Description
Input
Output
Sample Input
2
1
2
Sample Output
2
8 解题:
利用公式
t(1)=2
t(n)=t(n-1)+6*(n-1) 公式推倒如下:
平面本身是1部分.一个三角形将平面分成三角形内、外2部分,即增加了1部分,
两个三角形不相交时将平面分成3部分,相交时,交点越多分成的部分越多(见下图);
由上图看出,新增加的部分数与增加的交点数相同,所以,再画第3个三角形时,应使每条边的交点尽量多;
对于每个三角形,因为1条直线最多与三角形的两条边相交,所以第3个三角形的每条边最多与前面2个三角形的各两条边相交,共可产生3×(2×2)=12(个)交点,即增加12部分;
因此,3个三角形最多可以把平面分成:1+1+6+12=20(部分);
由上面的分析,当画第n(n≥2)个三角形时,每条边最多与前面已画的(n-1)个三角形的各两条边相交,
共可产生交点:3×[(n-l)×2]=6(n-1)(个),能新增加6(n-1)部分,
因为1个三角形时有2部分,所以n个三角形最多将平面分成的部分数是:
2+6×[1+2+…+(n-1)]=2+6×n(n-1)/2=2+3n(n-1)
最后打表输出。
代码如下:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
int n,m;
long long a[10005];
a[1]=2;
for(int i=2;i<=10000;i++)
a[i]=a[i-1]+6*(i-1);
scanf("%d",&n);
while (n--)
{
scanf("%d",&m);
printf("%d\n",a[m]); }
return 0; }
递推 N三角形问题的更多相关文章
- dp递推 数字三角形,dp初学者概念总结
数字三角形(POJ1163) 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大.路径上的每一步都只能往左下或 右下走.只需要求出这个最大和即可,不必给出 ...
- hdu 1249 三角形 (递推)
三角形 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- 动态规划——数字三角形(递归or递推or记忆化搜索)
动态规划的核心就是状态和状态转移方程. 对于该题,需要用抽象的方法思考,把当前的位置(i,j)看成一个状态,然后定义状态的指标函数d(i,j)为从格子出发时能得到的最大和(包括格子本身的值). 在这个 ...
- bzoj1201: [HNOI2005]数三角形----递推+bitset
-by bzoj http://www.lydsy.com/JudgeOnline/problem.php?id=1201 枚举所有交点,统计每个以每个点为顶点的正三角和和以每个点为左端点的反三角 ...
- luogu P1216 [IOI1994][USACO1.5]数字三角形 Number Triangles (递推)
链接:https://www.luogu.org/problemnew/show/P1216 题面: 题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的 ...
- ACM_平面、空间分割问题(递推dp)
折线分割平面 Time Limit: 2000/1000ms (Java/Others) Problem Description: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要 ...
- 紫书 例题 9-4 UVa 116 ( 字典序递推顺序)
这道题在递推方式和那个数字三角形有一点相像,很容易推出来 但是这道题要求的是字典序,这里就有一个递推顺序的问题 这里用逆推,顺推会很麻烦,为什么呢? 如果顺推的话,最后一行假设有种情况是最小值,那么你 ...
- TheSierpinskiFractal(POJ-1941)【递推】
题意:用‘\’,'/','_'按照给定规则画出三角形 题目链接:https://vjudge.net/problem/POJ-1941 思路:题中的三角形生成规则是符合递推关系的,可以先手动完成第一个 ...
随机推荐
- South - 在 Django 中 Migrate Database
Web 开发避免不了经常修改表结构,手工修改表结构不仅容易出错,而且涉及到多人协作开发时,这么土的做法很不经济. Django 的第三方 app South 就是专门做数据库表结构自动迁移的.Jaco ...
- 欧几里得&扩展欧几里得
原博网址:http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数 ...
- Blackfin DSP(二):寄存器操作与GPIO
BlackfinDSP的寄存器是通过指针操作的,与51.ARM等MCU一样,通过“或”操作来置1,通过“与”操作清零. 在DSP上最简单的外设非IO口莫属,但是由于其功能强大,远非一般IO口可比,因此 ...
- Dynamics Webservice Call with Credential
Dynamics Webservice call with credential /// <summary> ///WebServiceHelper 的摘要说明 /// </summ ...
- 用 Navicat 写mysql的游标
千言万语也比不上一个简单直接明了的小例子: CREATE PROCEDURE pro_users() begin DECLARE myid int; DECLARE no int; ); ); ); ...
- jquery radio取值,checkbox取值,select取值及选中
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关 获取一组radio被选中项的值 var item = $('in ...
- uva1587BOX
给定6个矩形的长和宽wi和hi(1≤wi,hi≤1000),判断它们能否构成长方体的6个面. 思路是首先排序,每个矩形都是x<y,就是短边x,长边y,然后对六个矩形进行二级排序,排序以后构成长方 ...
- java学习第9天
形式参数和返回值的问题 (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类 ...
- MyBatis复习
一.对JDBC的总结 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能. 解决方案:使用数据库连接池管理数据库连接. 2.将sql语句硬 ...
- Hadoop HDFS编程 API入门系列之合并小文件到HDFS(三)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs7; import java.io.IOException;import ja ...