题目描述
马上就要放假了,小鑫打算去爬山。
小鑫要去爬的这座山有n个海拔区间。为了清楚描述我们可以从上到下标号1到n。
第i个区间有i个落脚点,每一个落脚点都有一个危险值。
小鑫需要在第n个海拔区间挑选一个点向上爬,爬到第1个海拔区间(也就是山顶)。他必须规划一条路径,让危险值之和最小。这样才安全的。
并不是任意两个落脚点之间都可以相互到达。我们这样定义对于第i个(i
#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int n,i,j,a[106][106],d[106][106];
while(~scanf("%d",&n))
{
for(i=1; i<=n; i++)
for(j=1; j<=i; j++)
scanf("%d",&d[i][j]);
for(j=1; j<=n; j++)
a[n][j]=d[n][j];
for(i=n; i>=1; i--)
for(j=1; j<=i; j++)
if(a[i][j]<a[i][j+1])
a[i-1][j]=a[i][j]+d[i-1][j];
else
a[i-1][j]=a[i][j+1]+d[i-1][j];
printf("%d\n",a[1][1]);
}
return 0;
}