1 Star 0 Fork 1

saigon/Algorithms

forked from charlieshu/Algorithms 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles_从上往下版.cpp 928 Bytes
一键复制 编辑 原始数据 按行查看 历史
charlie 提交于 2024-01-09 00:01 . move from github to gitee
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int dfs(int x,int y,int r,int *a,int *dp){
if(dp[y*r+x] != -1)
return dp[y*r+x];
if(y == r-1)
return a[y*r+x];
int ans=0;
ans = max(dp[(y+1)*r+x]=dfs(x,y+1,r,a,dp),dp[(y+1)*r+x+1]=dfs(x+1,y+1,r,a,dp));
// cout<<x<<" "<<y<<endl;
// for(int i=0;i<r;i++){
// for(int j=0;j<r;j++)
// cout<<dp[i*r+j]<<" ";
// cout<<endl;
// }
// cout<<endl;
return ans+a[y*r+x];
}
int main(){
int r;
cin>>r;
int a[r][r],dp[r][r];
memset(dp,-1,sizeof(dp));
memset(a,0,sizeof(a));
for(int i=0;i<r;i++)
for(int j=0;j<=i;j++)
cin>>a[i][j];
cout<<dfs(0,0,r,&a[0][0],&dp[0][0]);
// for(int i=0;i<r;i++){
// for(int j=0;j<r;j++)
// cout<<dp[i][j]<<" ";
// cout<<endl;
// }
// cout<<endl;
// for(int i=0;i<r;i++){
// for(int j=0;j<r;j++)
// cout<<a[i][j]<<" ";
// cout<<endl;
// }
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/saigonshu/algorithm.git
git@gitee.com:saigonshu/algorithm.git
saigonshu
algorithm
Algorithms
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385