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 三角形 简单递推 / 数论的主要内容,如果未能解决你的问题,请参考以下文章
⭐算法入门⭐《递推 - 二维》简单01 —— LeetCode 118. 杨辉三角