4-27 登山机器人问题


问题描述

登山机器人是一个极富挑战性的高技术密集型科学研究项目,它为研究发展多智能体系统和多机器人之间的合作与对抗提供了生动的研究模型。 登山机器人可以携带有限的能量。在登山过程中,登山机器人需要消耗一定能量,连续攀登的路程越长,其攀登的速度就越慢。在对 n 种不同类型的机器人作性能测试时,测定 出每个机器人连续攀登 1 米,2 米,…,k 米,所用的时间。现在要对这 n 个机器人作综合 性能测试,举行机器人接力攀登演习。攀登的总高度为 m 米。规定每个机器人只能攀登 1 次,每次至少攀登 1 米,最多攀登 k 米,而且每个机器人攀登的高度必须是整数,即只能 在整米处接力。安排每个机器人攀登适当的高度,使完成接力攀登用的时间最短。

给定 n 个登山机器人接力攀登的总高度 m,及每个机器人连续攀登 1 米,2 米,…,k 米,所用的时间,编程计算最优攀登方案。

数据输入:
第一行是正整数 n,k 和 m 分别表示机器人的个数,每 个机器人最多可以攀登的高度,和攀登的总高度。接下来的 n 行中,每行有 k 个正整数,分 别表示机器人连续攀登 1 米,2 米,…,k 米所用的时间。


Java

import java.util.Scanner;public class DengShanJiQiRen {private static int[][] a,b;private static int[] w;private static int n,k,m;private static int MAX = 1000000;public static void main(String[] args){Scanner input = new Scanner(System.in);while (true){n = input.nextInt();k = input.nextInt();m = input.nextInt();a = new int[n+1][k+1];b = new int[n+1][k+1];w = new int[n+1];for(int i=1; i<=n; i++)for(int j=1; j<=k; j++)a[i][j] = input.nextInt();int result = compute();System.out.println(result);}}private static int compute(){int i,j,min,h=1,sum=0;for(i=1;i<=n;i++)for(j=1;j<k;j++)b[i][j]=a[i][j+1]-a[i][j];for(i=1;i<=n;i++)b[i][k]=MAX;for(i=1;i<=n;i++)w[i]=1;for(i=n+1;i<=m;i++){min=b[1][w[1]];for(j=1;j<=n;j++)if(b[j][w[j]]<=min){min=b[j][w[j]];h=j;}w[h]++;}for(i=1;i<=n;i++)sum+=a[i][w[i]];return sum;}
}

Input & Output

5 10 25
24 49 75 102 130 160 192 230 270 320
23 48 75 103 139 181 224 274 344 415
22 49 80 180 280 380 480 580 680 780
25 51 80 120 170 220 270 320 370 420
23 49 79 118 158 200 250 300 350 400
727

Reference

王晓东《计算机算法设计与分析》(第3版)P137

算法设计与分析: 4-27 登山机器人问题相关推荐

  1. 算法设计与分析: 2-7 士兵站队问题

    2-7 士兵站队问题 问题描述 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数坐标(x,y)表示.士兵们可以沿网格边上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名士兵. ...

  2. 【算法设计与分析】经典常考三十三道例题AC代码

    ❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...

  3. 循环赛日程表非递归Java_王晓东《算法设计与分析》课件.ppt

    <王晓东<算法设计与分析>课件.ppt>由会员分享,可在线阅读,更多相关<王晓东<算法设计与分析>课件.ppt(356页珍藏版)>请在人人文库网上搜索. ...

  4. 算法设计与分析(python版)-作业一

    参考教材:算法设计与分析(Python版)         作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...

  5. 程振波 算法设计与分析_算法设计与分析

    本书按照教育部*制定的计算机科学与技术专业规范的教学大纲编写,努力与国际计算机学科的教学要求接轨.强调 算法 与 数据结构 之间密不可分的联系,因而强调融数据类型与定义在该类型上的运算于一体的抽象数据 ...

  6. C++ 算法设计与分析 地图着色问题(中国+美国)

    文章目录 中国+美国可选择地图着色问题 地图着色问题 解决方法 回溯法 队列 代码展示 美国地图着色 代码(c++) 结果 中国+美国地图着色 代码(c++) 结果 可视化 中国+美国可选择地图着色问 ...

  7. C++算法设计与分析例题代码(基础篇)

    C++算法设计与分析例题代码 前言 一.求1/1!-1/3!+1/5!-1/7!+...+(-1)^(n+1)/(2n-1)! 二.一个数如果恰好等于它的因子之和(包括1,但不包含这个数本身),这个数 ...

  8. 算法设计与分析第一章递推算法

    算法设计与分析 第一章 递推算法 1.概述 在**已知条件**和**所求问题**之间总存在着某种相互联系的关系,如果可以找到前后过程之间的数量关系(即递推式),那么,从**问题出发逐步推到已知条件** ...

  9. 算法设计与分析: 5-19 世界名画陈列馆问题

    5-19 世界名画陈列馆问题 问题描述 世界名画陈列馆由 m×nm×n m \times n 个排列成矩形阵列的陈列室组成.为了防止名画被盗,需要在陈列室中设置警卫机器人哨位.每个警卫机器人除了监视它 ...

最新文章

  1. P1800 software_NOI导刊2010提高(06)
  2. Python网络编程1--笔记
  3. mysql 日期_Mysql数据库常见函数(下)——日期时间函数
  4. JPA 2.1和Java EE 7中的JPQL增强功能(第1部分– JOIN ON)
  5. MapReduce:处理数据密集型文本处理–局部聚合第二部分
  6. LaTeX表格字太贴近上面表线
  7. linux shell 多个命令一起执行的几种方法
  8. 安装linux后没有网卡驱动,重装完centos6.5后没有网卡驱动的解决方法
  9. 【Unity】文字游戏制作插件Fungus教程(1)基础的使用方法
  10. 雨林木风GhostXPSP3装机版YN9.9_09.11更新
  11. android 播放视频文件格式,安卓播放exe视频,如何将exe格式视频转换成常用格式视频...
  12. Swift最新的AES加密解密
  13. C盘用户里的文件夹改名
  14. html图片自动适应屏幕代码,css让图片宽度自适应屏幕的例子
  15. dns配置异常怎么修复_win10 dns异常怎么修复
  16. 3D-GIS地理信息系统项目实施及目标
  17. 解决Mac电脑连不上wifi的问题
  18. 机器学习和人工智能的关系是什么?
  19. C语言深度剖析笔记2
  20. DNF之架设搭建游戏流程讲解

热门文章

  1. 工厂人员定位系统解决方案详解
  2. 小册上新 | 掌握 SpringBoot 场景整合,成为开发多面手!
  3. 什么是udp攻击?udp攻击的基本原理是什么
  4. iTOP-4418开发板Linux系统移植modbus-arm的测试程序
  5. 北航王田苗教授:国内外机器人发展热点与趋势(精华版)
  6. 教你无脑式安装Xshell、Xftp,快速远程连接使用Linux服务器并且高效传输文件(保姆级教程)
  7. 统计:目前网上商店最热卖的五大类商品
  8. 除了Kaggle,这里还有一些含金量高的数据科学竞赛哦
  9. YOLOv5识别图像内苹果和香蕉
  10. 说说WM_DESTROY和WM_NCDESTROY的区别