数字三角形III

本问题的相关问题:数字三角形II

有一个由正整数组成的三角形,第一行只有一个数,除了最下行之 外每个数的左下方和右下方各有一个数,如下图所示。


从第一行的数开始,每次都只能左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来。如何走,使得这个和的个位数尽量大?

在本例中,记d[i,j,k]表示以格子(i,j)为根的子三角形是否存在所有数之和个位为k的路径,则d[i,j,k]为真当且仅当存在t使得(a[i, j] + t) mod 10 = k,且d[i+1,j,t]或d[i+1,j+1,t]为真。

for(i=n-1; i>=1; i--)
	for(j=1; j<=i; j++)
		for(k=0; k<=9; k++)
		{
			d[i][j][k] = false ;
			while(t<a[i][j])
				t = t+10;
			t = (t-a[i][j]) % 10;
			if(d[i+1][j][t] || d[i+1][j+1][t])) d[i][j][k] = true ;
		}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值