博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记忆化搜索算法(MemorySearch)显示路径的问题
阅读量:5206 次
发布时间:2019-06-14

本文共 1268 字,大约阅读时间需要 4 分钟。

本人小白但是最近学习了动态规划的记忆化搜索算法,就是经典的那道数字三角形的题,题目中最后说的只是要显示最大路径的值(就是求和),没说要求走过的点的坐标,我想顺便输出坐标,有没有什么高效的算法?我目前想出来一种(效率可能很低),就是用一开始记录到底的值的数组d来求,遍历每一行的d,求其的最大值然后记录下坐标。但是我觉得可以通过边搜边记录边筛的方式来弄。

一下是我尝试后者的代码

#include<iostream>

#include<algorithm>
using namespace std;
int d[107][107],a[107][107],n,njc,Roadx[100],Roady[100],Road_jc=1;
void PrintRoad(){
for(int i=1;i<=Road_jc;i++){
cout<<"第"<<i<<"组是"<<"("<<Roadx[i]<<","<<Roady[i]<<")"<<endl;
}
}
void Get_Road(int a,int b){
Roadx[Road_jc]=a;
Roady[Road_jc]=b;
Road_jc++;
}
void Get_Putin(){
for(int wjc=1;wjc<=n;wjc++){
njc=1;
for(int njc=1;njc<=wjc;njc++){
cin>>a[wjc][njc];
d[wjc][njc]=0;
}
}
}
int dfs(int x,int y){
if(d[x][y]!=0){
return d[x][y];
}
if(d[x][y]==0){
d[x][y]=a[x][y]+max(dfs(x+1,y),dfs(x+1,y+1));
if(dfs(x+1,y)>=dfs(x+1,y+1))Get_Road(x+1,y);
else Get_Road(x+1,y+1);
return d[x][y];
}
}
void Start_Chu(){
for(int jc=1;jc<=n;jc++)d[n][jc]=a[n][jc];
}
void De_Bug(){
for(int wjc=1;wjc<=n;wjc++){
njc=1;
for(int njc=1;njc<=wjc;njc++){
cout<<"a["<<wjc<<"]"<<"["<<njc<<"]"<<a[wjc][njc]<<" ";
cout<<"d["<<wjc<<"]"<<"["<<njc<<"]"<<d[wjc][njc]<<" ";
cout<<endl;
}
}
}
int main(){
cin>>n;
Get_Putin();
Start_Chu();
cout<<dfs(1,1)<<endl;
PrintRoad();
system("pause");
return 0;
}

转载于:https://www.cnblogs.com/xiazai/p/8999140.html

你可能感兴趣的文章
springmvc 类型转换器 数据回显及提示信息
查看>>
蘑菇街2018实习笔试题
查看>>
第五章 基础构建模块
查看>>
[原创]zabbix工具介绍,安装及使用
查看>>
屏蔽apache php版本号
查看>>
python脚本 随机定位坐标
查看>>
Python绘制3d螺旋曲线图实例代码
查看>>
详细讲解 java 中的synchronized 转自 http://www.cnblogs.com/devinzhang/archive/2011/12/14/2287675.htm...
查看>>
基于webpack的react的环境项目搭建
查看>>
win10如何修改host文件
查看>>
spring security 学习(一)spring boot 中开启spring security
查看>>
Leetcode 100: Same Tree
查看>>
<metro>读取目录名
查看>>
Android Monkey 压力测试 介绍
查看>>
使用两个 Windows 窗体 DataGridView 控件创建一个主/从窗体
查看>>
eclipse老是报ThreadPoolExecutor$Worker.run()(转)
查看>>
[NOI2005 维护序列]
查看>>
easyui源码翻译1.32--ComboGrid(数据表格下拉框)
查看>>
LeetCode 274. H-Index
查看>>
LeetCode 112. Path Sum
查看>>