1249 三角形 简单递推 / 数论

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1249 三角形 简单递推 / 数论相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

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

我们要知道的是要想分成的区域越多,那么交点必须越多
当我们的三角形有2个的时候。
固定一个三角形,画另一个三角形,要想让其分成的区域越多,故边穿过的线的个数必须多。
一条线最多穿过 2条线,三角形有三条边故 一共有 3*2= 6个交点
s[2] =s[1] +6 =8;
在这里插入图片描述
当我们的三角形有3个的时候。
在这里插入图片描述
综上可以得到: a[i]=a[i-1]+6 x (i-1)

#include<cstdio>
#include<iostream>
using namespace std;
int a[10005];
int main(void)
{
	int t; cin>>t;
	a[1]=2;
	for(int i=2;i<=10000;i++)
	{
		a[i]=a[i-1]+6*(i-1);
	}
	while(t--)
	{
		int b; cin>>b;
		cout<<a[b]<<endl;
	}
	return 0; 
} 

当然你可以推出公式是 f(n)=3n(n-1)+2 直接套公式

以上是关于1249 三角形 简单递推 / 数论的主要内容,如果未能解决你的问题,请参考以下文章