电梯2

一、题目和要求

  • 石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。
  • 由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
  • 问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

二、设计思路

1、枚举法不难,但是复杂度高,不好不好

2、老师说的方法甚好

i-1层:N1人

i层:N2人       Y:乘客总共需要爬的楼数

i+1层:N3人

  如果电梯停在i层,爬楼Y层

如果电梯改停i-1层,爬楼 就是Y+N2+N3-N1

如果电梯停在i+1层,爬楼  就是Y+N2+N1-N3

当N2+N3>N1时,i比i-1层好

当N2+N1>N3时,i比i+1层好

三、代码

#include <iostream>
using namespace std;
void louti(int A[]);
int main()
{
     int N = 18;
     int renshu[20];
     int a,b;//所停层数,最小爬楼数
     int N1,N2,N3;
     b = 1;
     for(int i=0;i<20;i++)
     {
         renshu[i]=0;
     }
     louti(renshu);
     N1 = N3 = a = 0;
     N2 = renshu[1];

     for( i = 2; i <= N; i++)
     {
          N3 += renshu[i];
          a += renshu[i] * (i-1);
     }
     for( i=2;i<=N;i++)
     {
          if(N1 + N2 < N3)
          {
               b = i;
               a += (N1 + N2 - N3);
               N1 += N2;
               N2 = renshu[i];
               N3 -= renshu[i];
          }
          else
          {
               break;
          }
     }
     cout<<"所停楼层:"<<b<<endl;
     cout<<"最小楼层数:"<<a<<endl;
     return 0;
}
void louti(int A[])
{
    int length;
    cout<<"请输入一层时电梯内人数:";
    cin>>length;
    int *a=new int[length];
    cout<<"请输入每个人所按的楼梯层数:";
    for(int i=0;i<length;i++)
    {
            cin>>a[i];
            A[a[i]]=A[a[i]]+1;
    }
}

四、实验截图

五、总结

总结一点,就是遇到问题,先去想解题思路,不要去想怎么编代码,类似问题,先找出一般规律,利用数学问题求解,找到具体解决方法。

时间: 2024-08-03 19:56:02

电梯2的相关文章

AOJ 756.电梯

电梯 Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MBTotal Submission: 21   Submission Accepted: 13 Description 在城市的高层建筑物中,只有一部电梯,由N个正整数组成一个请求列表,列表中的数字表示电梯将在哪层停,电梯按列表顺序依次停靠.电梯每上行一层需要花6秒时间,每下行一层需要花4秒时间,电梯每停一次需要用时5秒.对于给定的请求列表,计算完成所有请求

电梯调度程序

说明: 此次是结对编程项目,其实还是第一次接触.之前都是自己一个人闷头写,想实现什么功能就写什么.但这次接触到结对编程,发现和别人讨论的重要性.两个人商量着来,分析用户需求,完善功能.而且两个人商量也不会像一个人找bug时那么的焦虑.着急.同时,也是最重要的,结对编程的方式对程序的质量也会有很大的提高. 一.题目要求: 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 80

结对项目——电梯调度之界面粗略规划与设计

在程序运行时要显示一个菜单界面,用于用户的一些操作.分为进入菜单,总控台菜单,以及退出. 在进入菜单里我们主要就是设计模拟电梯运动. 首先先分析下现实中的电梯: 1.在外界每一楼层都能够有选择上下的按钮(最低一层只有上,最高一层只有下) 2.选择方向与电梯的运行方向不同时,只有当电梯状态变成静止时才响应 3.电梯内部有能选择楼层的按钮 4.电梯有限载 设计初想: 1.进入菜单: 在每一层的上下按钮可以直接用button控件,显示的文字是:楼层+上/下:然后通过获取控件上的文本信息的第一个字符来确

电梯调度——调研报告

需求调研报告 立项背景: 石家庄铁道大学基础教学大楼是一座18层的建筑,其内部配备4部电梯,学生和老师使用电梯的高峰时段相对集中于每次上课/下课的时段,故电梯的使用具有突发性和荷载量大的特点,故设计合理的电梯调度算法,避免出现 “公共汽车”,即把电梯作为总线,它从底部到顶部,停在每一层楼,打开门,让人们进出,然后把门关上,继续前进.之后到达顶层,它会下去.可以极大的提高电梯的工作效率. 石家庄铁道大学基础教学楼的电梯配置如下: 电梯数量:4部 电梯的最大容量为15人 电梯经过每楼层的时间:3秒

结对开发--电梯调度报告

“电梯调度”需求分析 一.项目背景 试想一下,石家庄铁道大学基础教学楼的电梯配置如下:大厦有18层, 4部电梯,很多乘客使用这些电梯的日常(旅客重量:平均70公斤最大120公斤,最小45公斤).其他常量数据:电梯速度,开/关门时间,乘客的时间要在/走出电梯.可以对这些合理的假设. 二.数据分析 我们随机选择了一天去现场调查基础教学楼电梯的使用情况,列表如下: 电梯名称 停靠层数 乘客限制 重量限制/kg 电梯开关时间/s 乘客进出电梯时间/s 电梯1 8-18层(双层) 15人 1150 4s

男童手臂被电梯夹断,惨不忍睹!秦皇岛环美亚盘点电梯伤人事件

内容来自环美亚环保除甲醛官网,如有侵权,请联系删除. 4岁男孩被电梯夹断手臂现场惨烈,断肢是否成活仍未知! 6月1日,本该是孩子们快乐玩耍的节日,可是在南昌市京东天虹商场里又发生了一件不幸的电梯事故.4岁的男孩鹏鹏独自走上逆行的电梯,右手手臂卷进电梯,十几秒的时间里,孩子的手臂发生断裂. 据商场的监控显示,昨日下午15时左右,孩子一个人走上了逆行的电梯,没走两步就倒在了电梯上.此后孩子的母亲赶来,花了很大力气都没能把孩子救出来. 随后孩子被送到医院救治.经过近7个小时的救治,手臂再植手术完成.医

电梯系统中实时控制软件系统的案例分析

简化的电梯系统(不考虑轿厢启停的速度控制等)的输入信号包括:超重.报警.到达响铃.关门阻挡信号检测.轿厢内的目的楼层请求按钮.每层的上升召唤按钮.每层的下降召唤按钮.每层的楼层行程开关.开门按钮.关门按钮.开门限位开关.关门限位开关:输出包括:目的按钮指示灯.上行召唤按钮指示灯.下降召唤按钮指示灯.轿厢上升.轿厢下降.到达楼层显示灯.开门.关门.当前电梯状态显示灯.可把系统状态划分为三种:空闲态.上升态.下降态.其电梯调度算法描述为:电梯在运行中服务于同方向上的请求,中途不改变其运动方向,除非它

TYVJ P3522 &amp;&amp;洛谷 P1135 奇怪的电梯 Label:bfs

题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N).电梯只有四个按钮:开,关,上,下.上下的层数等于当前楼层上的那个数字.当然,如果不能满足要求,相应的按钮就会失灵.例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始.在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼.那么,从A楼到B楼至少要按几次按钮呢? 输入输出格式 输入格式: 输入文件

浮动【电梯】或【回到顶部】小插件:iElevator.js

iElevator.js 是一个jquery小插件,使用简单,兼容IE6,支持UMD和3种配置方式,比锚点更灵活. Default Options _defaults = { floors: null, btns: null, backtop: null, selected: '', sticky: -1, visible: { isHide: 'no', numShow: 0 }, speed: 400, show: function(me) { me.element.show(); }, h

对于电梯调度的想法

电梯调度 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 800 kg 3 双层 20 1600 kg 4 全部楼层 20 2000 kg 其使用规定如下: 1.楼层号为0~20,其中0号为地下一层: 2.有楼层限制的电梯不在响应楼层停靠,如单双层: 3.所有电梯采用统一按钮控制 请根据上述要求设计并实现一个电梯控制程序,如果有图形显示就更好了. 对于这个问题我有以下想法