UVa 11040 (水题) Add bricks in the wall

时间:2024-01-16 22:20:02

题意:

UVa 11040 (水题) Add bricks in the wall

45块石头如图排列,每块石头上的数等于下面支撑它的两数之和,求其余未表示的数。

分析:

首先来计算最下面一行的数,A71 = A81 + A82 = A91 + 2A92 + A93,变形得到A92 = (A71 - A91 - A93) / 2.

以此类推,就能得到最下面一整行的数。有了这个“地基”以后,所有的数就都能算出来了。

 #include <cstdio>

 int a[][];

 int main()
{
//freopen("in.txt", "r", stdin);
int T;
scanf("%d", &T);
while(T--)
{
for(int i = ; i <= ; i += )
for(int j = ; j <= i; j += )
scanf("%d", &a[i][j]);
for(int i = ; i <= ; i += )
a[][i] = (a[][i-]-a[][i-]-a[][i+])/;
for(int i = ; i >= ; --i)
{
if((i & ) == )
{
for(int j = ; j <= i; ++j)
a[i][j] = a[i+][j] + a[i+][j+];
}
else
{
for(int j = ; j <= i; j += )
a[i][j] = a[i+][j] + a[i+][j+];
}
} for(int i = ; i <= ; ++i)
{
for(int j = ; j < i; ++j)
printf("%d ", a[i][j]);
printf("%d\n", a[i][i]);
} } return ;
}

代码君