数字三角形W

题目描述 Description

数字三角形
要求走到最后mod 100最大

输入描述 Input Description

第1行n,表示n行
第2到n+1行为每个的权值

输出描述 Output Description

mod 100最大值

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int x[1005][1005],m,a,b,c,d,e,f[1005][1005][105],k;
int main()
{
	cin>>m;
	for(a=1;a<=m;a++)
	{
		for(b=1;b<=a;b++)
		{
			cin>>x[a][b];
		}
	}
	for(a=1;a<=m;a++)
	{
		for(b=1;b<=a;b++)
		{
			if(a==1)
			{
				f[1][1][x[1][1]]=1;
			}
			else
			{
				for(c=1;c<=100;c++)
				{
					if(f[a-1][b-1][c]==1||f[a-1][b][c]==1)
					{
						f[a][b][(x[a][b]+c)%100]=1;
					}
				}
			}
		}
	}
	for(a=1;a<=m;a++)
	{
		for(b=99;b>=1;b--)
		{
			if(f[m][a][b]==1)
			{
				if(b>k)
				{
					k=b;
					if(k==99)
					{
						cout<<k;
						return 0;
					}
				}
				break;
			}
		}
	}
	cout<<k;
}




原文地址:https://www.cnblogs.com/ztz11/p/9189972.html