The Triangle
Time Limit:1000MS |
|
Memory Limit:10000K |
Total Submissions:30728 |
|
Accepted:18184 |
Description
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.
Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle,
all integers, are between 0 and 99.
Output
Your program is to write to standard output. The highest sum is written as an integer.
Sample Input
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Sample Output
30
记忆化搜索,hash数组记录当前最大值
对于3176,挂了,看来还是有问题
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int maps[105][105];
int Hash[105][105];
int n;
void DFS(int x, int y)
{
if(x==n) return;
for(int i=0;i<=1;i++)
{
int p = x + 1;
int q = y + i;
if(maps[p][q] + Hash[x][y] > Hash[p][q])
{
Hash[p][q] = maps[p][q] + Hash[x][y];
DFS(p,q);
}
}
}
int main()
{
freopen("in.txt","r",stdin);
cin>>n;
memset(Hash,0,sizeof(Hash));
memset(maps,0,sizeof(maps));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
cin>>maps[i][j];
}
}
Hash[1][1] = maps[1][1];
DFS(1,1);
int sum = -1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
sum = max(sum,Hash[i][j]);
}
}
cout<<sum<<endl;
}
分享到:
相关推荐
北大POJ1163-The Triangle
【标题】"POJ1163 - The Triangle" 是北京大学在线编程平台POJ上的一道算法题目。这道题目通常被归类为计算机科学与信息技术领域的算法问题,特别是涉及数据结构和动态规划的子领域。 【描述】该题目的解题报告详细...
poj 1611 The Suspects 代码 并查集的应用
【标题】"POJ1426-Find The Multiple【BFS+同余模】"是一道来源于北京大学在线编程平台POJ的算法题目,主要涉及到了广度优先搜索(BFS)与同余模运算的知识点。这道题目要求解决的是寻找一个整数的倍数问题,可能...
【标题】"POJ1027 - The Same Game"是一个经典的编程竞赛题目,源自北京大学的在线编程平台POJ(Problem Online Judge)。该题目主要考察的是动态规划和矩阵链乘法的知识,要求参赛者编写程序解决一个具有策略性的...
标题中的“POJ 1054 The Troublesome Frog”是一个编程竞赛题目,来源于“Programming Online Judge”(POJ)平台。这个平台是程序员们练习算法和编程技能的地方,通常涉及各种数据结构和算法的问题。题目...
poj 1611 The Suspects.md
poj经典动态规划题目解题报告,包括经典的动态规划题目20多道,可以作为学习动态规划系统的资料,包括题目: Pku acm 1179 Polygon Pku acm 1125 Stockbroker Grapevine Pku acm 1160 post office Pku ...
poj 3191 The Moronic Cowmpouter.md
poj 3260 The Fewest Coins.md
poj 1989 The Cow Lineup.md
poj 3901 The Computer Game.md
先利用prim算法求出最小生成树,然后通过往MST里加边来判断新生成的最小生成树是否具有最小的权值,POJ上The Unique MST(1679)题是要求判断最小生成树是否唯一,此题其实根本不用这样做,但是为了练习球次小生成树...
标题“POJ2151-Check the difficulty of problems”是指一个编程竞赛题目,来源于北京大学的在线判题系统POJ(PKU Online Judge)。这个题目要求参赛者编写程序来评估问题的难度。描述中的“解题报告+AC代码”表明...
《POJ2983-Is the Information Reliable:解析差分约束与优化Bellman算法》 北京大学在线编程平台上的POJ2983题目——"Is the Information Reliable",是一道涉及差分约束系统(Differential Constraint System)与...
北大POJ3267-The Cow Lexicon
【标签】"POJ 3982 The Fibonacci sequence"是这个编程问题的标识,便于搜索和分类。POJ平台上的每个题目都有唯一的标签,方便用户查找和回顾。 斐波那契序列是计算机科学中一个基础而重要的概念,它的定义如下:...
【标题】"POJ2635 - The Embarrassed Cryptographer" 是一道来源于北京大学在线判题系统POJ(Problem Set)的编程题目。这道题目的主要目标是解决一个与密码学相关的问题,通常这类问题会涉及到算法设计、字符串处理...
《POJ2635-The Embarrassed Cryptographer:测试数据解析与算法探讨》 POJ2635,这是一个源自NCPC(全国大学生程序设计竞赛)2005年问题D的编程挑战,名为“尴尬的密码学家”。在本文中,我们将深入探讨这个问题的...
* 1163 The Triangle * 1458 Common Subsequence * 1579 Function Run Fun * 1887 Testing the CATCHER * 1953 World Cup Noise * 2386 Lake Counting 简单、模拟题 简单、模拟题是 POJ 上的基础题目,它们通常不...