深度优先之货物搬运路径
这是阿里的一道编程测试题, 找工作经常考察深度优先,阿里的这个测试题应该不算偏,是个基本的题目:
题目描述
给定一个mxn货架,标注重量,例如:
2 3 4 6 7 1
9 8 7 11 12 14
21 22 32 45 16 10
搬运员搬运时候有个习惯,每次搬运的时候都会比上一个货物要轻.每次搬运一个货物奖励1元,
按照这个原则球搬运员的最大收益.
题目分析
很显然是深度优先的题目,现在还没想到优化的方法,先按照最基本的,从每一个货物出发找出最长的路径,求这其中最大的.希望以后能够探索出更加优质的程序结构.
代码
#include<iostream>
#include<vector>
using namespace std;bool test(vector<vector<int> > & thgs, int i , int j){if(i < thgs.size()&&i>=0&&j>=0 && j < thgs[0].size() && thgs[i][j]>0 )return true;return false;
}//深度优先
int epath(vector<vector<int> > &thgs, int i , int j){int maxpp = 0, res = 0; int delt[4][2] = {0,1,0,-1,1,0,-1,0};for(int ii =0 ; ii < 4; ii++){if(test(thgs,i+delt[ii][0],j + delt[ii][1])&&thgs[i+delt[ii][0]][j+ delt[ii][1]]< thgs[i][j]){int tp = thgs[i][j];thgs[i][j]=-1;res = epath(thgs , i+delt[ii][0] ,j + delt[ii][1])+1;maxpp = maxpp < res ? res : maxpp;thgs[i][j]=tp;}}return maxpp;
}int main(){// 构造输入int m , n ;cin >>m >> n;vector<vector<int> > things;for(int i =0 ; i < m ; i++)
{vector<int> temp;for(int j =0 ; j< n ; j++){int tt; cin >>tt;temp.push_back(tt);}things.push_back(temp);
}
// 从不同的货物出发
int maxpp = 0;
for(int i =0 ; i < m ; i++)
{ for(int j =0 ; j< n ; j++){int res = epath(things, i ,j)+1;maxpp = maxpp > res? maxpp:res;}
}cout << maxpp;
}
转载于:https://www.cnblogs.com/xiaozhi007/p/7260690.html
深度优先之货物搬运路径相关推荐
- 南华大学计算机学院吴取劲,一种基于图深度优先搜索的基本路径集自动生成优化算法-南华大学学报.PDF...
26 3 ( ) Vol. 26 No. 3 第 卷第 期 南华大学学报 自然科学版 2012 9 Journal of University of South China (Science and ...
- 货物搬运(move)
货物搬运(move) 题目描述 天地无情人有情,一方有难八方支援!汶川大地震发生后,灾区最紧缺的是救灾帐篷,全国各地支援的帐篷正紧急向灾区运送.假设围绕纹川县有环行排列的n个救灾帐篷的存储点,每个存储 ...
- 【STM32小项目】-- 基于STM32芯片车载货物搬运系统研究
文章目录 基于STM32芯片车载货物搬运系统研究 项目中的分工 资料 相关文书材料 基于STM32芯片车载货物搬运系统研究 项目中的分工 1.原理图,PCB等硬件相关设计以及项目实践总结 2.机械臂在 ...
- 第十二届蓝桥杯A组省赛填空题Java思路及代码合集(相乘直线货物摆放路径回路计数)
文章目录 试题 A: 相乘 试题 B: 直线 试题 C: 货物摆放 试题 D: 路径 试题 E: 回路计数 试题 A: 相乘 本题总分:5 分 [问题描述] 小蓝发现,他将 1 至 100000000 ...
- 人工智能笔记 2.1人工智能导论- 1.什么是AI,深度优先,广度优先,最优路径
人工智能是什么 人工智能是关于算法通过表示得以呈现的约束条件而表示支持针对思维,感知和行动的有机体模型 (algorithms enabled by constriants exposed by re ...
- AGV小车如何实现无人搬运自动导引代替人工
行业背景 工业4.0技术是未来企业必须拥有的技术,未来AGV无人搬运不只是简单的把货物搬运到指定的位置,而是要把大数据.物联网.云计算等贯穿于产品的设计中,让AGV搬运机器人成为一种实时感应.安全识别 ...
- 【优化求解】基于matlab遗传算法求解立体仓库出入库路径优化问题【含Matlab源码 2028期】
⛄一.遗传算法仓库货位简介(仅供参考) 1 问题描述 1.1 自动化立体仓库出入库路径优化问题描述 自动化立体仓库如图1所示,主要是由以下几个部分组成: 货架,一般为钢结构构成的存储商品的单元格,单元 ...
- 常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,
题目描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22, 返回 [ [5,4,11,2], [5,8,9] ] 示 ...
- 搜索---广度优先遍历、深度优先遍历、回溯法
参考文章:https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E6%9 ...
最新文章
- Winform 自定义窗体皮肤组件
- Kibana 的安装(Windows版本)新手入门
- 03-sizeof的用法
- 佛说 :程序员你与我有缘。
- linux 窗口管理器_您最喜欢的Linux窗口管理器是什么?
- java blob转为图片_导出的图片为什么会糊?!
- 政企上云正当时,华为云12.12大促助力中小企业数字转型升级
- c语言 滑窗法_滑窗算法
- wmic卸载程序命令_使用WMIC命令行卸载软件
- 常见卫星汇总--期待大神补充下载地址
- mp3 资源文件压缩
- cad小插件文字刷_cad插件-文本修改
- 知识库 编号:002
- 【Scala】Scala中的模式匹配、类型参数与隐式转换
- Nginx 安装、解决办法
- 搞点好玩儿的,如何做一个你自己的ad-block插件
- 长期应用阿达木单抗时所产生的抗抗体会影响疗效
- 一笔画:五环,python-turtle。画圆圈
- 211工科计算机专业大学排名,这所211大学曾痛失985资格,工科专业实力强劲
- 词袋 图像检索 matlab,词袋模型BoW图像检索Python实战
热门文章
- 优化问题求解算法:精确式、启发式、元启发式、超启发式
- as3程序员不知道的as2和as3的不同点
- bzoj2259 [Oibh]新型计算机
- 【算法】袋鼠过河,动态规划问题(C++源码)
- cancelbubble和stoppraopagation区别
- event.cancelBubble
- 阻止事件冒泡:IE属性(cancelBubble)VS DOM方法(stopPropagation())(非技术文,纯属防坑)
- htmlparser的使用java_HTMLParser的使用
- 第二次结对编程之测试缤纷桌面
- R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join)