码迷,mamicode.com
首页 > 其他好文 > 详细

电梯调度

时间:2015-04-21 00:10:18      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

题目:根据停留人数选出需要爬楼梯最少的停留

 

想法:对于电梯的要求:电梯在一楼出发,待用户输完想停的楼层后,停在其中的一层楼然后所有人下去徒步找各自的目标地,使最后所有人的爬楼梯数最短。

      设最后停在i层,i层下有n1个人,i层有n2个人,i+1层有n3个人,假设停i层为最短Y,若停在i-1层则Y-(n1-n2-n3)停在i+1层则Y-(n3-n1-n2)则n1>n2+n3停在i-1层,n3>n1+n2则电梯停在i+1层合算其余停i。

 

代码:

  #include<iostream>
using namespace std;

 int main()
 {
     int people[7];
     int i;
     int n1 = 0;
   int n2;
     int n3 = 0;
    /*int sum;*/
     for (i = 0; i < 7; i++)
	 {    cout<< "第"<<i<<"层"<<endl;
         cin >>people[i];
    /*    sum += people[i];*/
    }
     n2 = people[0];
    for (i = 1; i <= 9; i++)
     {
         n3 += people[i];
    }
     for (i = 0; i < 10; i++)
     {
        if (n3 > n1 + n2)
        {
             n1 = n1 + n2;
             n2 = people[i + 1];
             n3 -= people[i + 1];
         }
         else
         {   
             cout << "要停在第"<<i+1<<"层"<<endl;
           
            break;
			
         }
     }
 
 
     return 0;
 }
 

  截图:技术分享

感想:没有想出来具体的算法,只能参考老师上课讲的思路,假设有三层 分别为i ;i+1; i-1;然后再进行算法。

电梯调度

标签:

原文地址:http://www.cnblogs.com/TSbj/p/4442888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!