INPUT
2
3
4
OUTPUT
1
2 2
1 2 1
1
3 3
3 6 3
1 3 3 1
1
4 4
6 12 6
4 12 12 4
1 4 6 4 1
题意:输出第n个图所对应的矩阵。
思路:找规律。每一个结点都是由上一个图中三个结点的相加而来。直接打表求解即可。
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
using namespace std;
#define MAX 1e9+7
#define inf 0x3f3f3f
const int maxn=1e4+10;
typedef long long ll;
int s[25][25][25];
int main()
{
s[0][1][1]=1;
for(int i=1; i<=20; i++)
{
for(int j=1; j<=i+1; j++)
{
for(int k=1; k<=j; k++)
{
s[i][j][k] = s[i-1][j-1][k-1] + s[i-1][j-1][k] + s[i-1][j][k];
}
}
}
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=1; i<=n+1; i++)
{
for(int j=1; j<=i; j++)
{
if(j != i)
printf("%d ",s[n][i][j]);
else
printf("%d",s[n][i][j]);
}
printf("\n");
}
}
}