会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
サ繌н筻刂挭
博客园
首页
新随笔
联系
订阅
管理
PKU 1163 The Triangle
分析:经典DP,从上往下递归,从下往上求解。
Code
#include
<
iostream
>
using
namespace
std;
int
dp[
101
];
int
map[
101
][
101
];
int
main()
{
int
m;
while
(cin
>>
m)
{
for
(
int
i
=
0
;i
<
m;
++
i)
for
(
int
j
=
0
;j
<=
i;
++
j)
{
cin
>>
map[i][j];
if
(i
==
m
-
1
)
dp[j]
=
map[i][j];
}
for
(
int
i
=
m
-
2
;i
>=
0
;
--
i)
for
(
int
j
=
0
;j
<=
i;
++
j)
dp[j]
=
max(dp[j],dp[j
+
1
])
+
map[i][j];
cout
<<
dp[
0
]
<<
endl;
}
return
0
;
}
/**/
/*
#include <iostream>
using namespace std;
int dp[101][101];
int map[101][101];
int main()
{
int m;
while(cin>>m)
{
for(int i=0;i<m;++i)
for(int j=0;j<=i;++j)
{
cin>>map[i][j];
if(i==m-1)
dp[i][j] = map[i][j];
}
for(int i=m-2;i>=0;--i)
for(int j=0;j<=i;++j)
dp[i][j] = max(dp[i+1][j],dp[i+1][j+1]) + map[i][j];
cout<<dp[0][0]<<endl;
}
return 0;
}
*/
posted @
2009-04-30 14:17
黄浩贤
阅读(
143
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告