题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2353
题意简述:有点像一个经典dp问题:数字三角形。不过这里可以横着走,还要输出路径。
解题思路:双向dp。设dp[i][j]为在i层第j个位置所能获得的最大值,
那么状态方程可以这样写:dp[i][j]=max(dp[i-1][j],dp[i][j+1],dp[i][j-1])+map[i][j];
其它的不怎么好说了,自己用代码将其实现就行了。
代码:
内附两份代码:第一份是我用三种循环解的,但是总是返回OLE,希望哪位路过的大牛帮忙看看错误;第二份是优化后的ac代码。