zoukankan      html  css  js  c++  java
  • 编程之美1.8电梯调度

    /*
     * =====================================================================================
     *
     *       Filename:  1-8.c
     *
     *    Description:  
     *
     *        Version:  1.0
     *        Created:  2014年06月13日 10时25分11秒
     *       Revision:  none
     *       Compiler:  gcc
     *
     *         Author:  Wenxian Ni (Hello World~), niwenxianq@qq.com
     *   Organization:  AMS/ICT
     *
     * =====================================================================================
     */
    
    #include<stdio.h>
    #define N 100
    int nP[N];
    int nTarget;
    
    int GetMin(int n)
    {
        int total = 0;
        int nNum = 0;
        int nTo = 0;
        int nDown = 0;
        int i;
        for(i=1;i<=n;i++)
        {
            total += nP[i] * (i-1);
            nNum += nP[i];
        }
        nTarget = 1;
        nTo = total;
        nDown = nP[1];
        for(i=2;i<=n;i++)
        {
            nTo += nDown;
            nTo -= nNum - nDown;
            nDown += nP[i];
            if(nTo < total)
            {
                nTarget = i;
                total = nTo;
            }
        }
        return nTarget;
    }
    int main()
    {
        nTarget = -1;
        int i;
        int n;
        while(~scanf("%d",&n)&&n!=0)
        {
            for(i=1;i<=n;i++)
                scanf("%d",&nP[i]);
            int nTarget = GetMin(n);
            printf("%d
    ",nTarget);
        }
        
    }
    

    1. 从第1层开始,数组从下标1开始

    2. 之前想到的取所有电梯数总数再平均的方法错误

    3. 如果上楼耗k能量,下楼耗1能量,则方法一样,只是在计算的时候乘以系数即可完成

    4. 如果再考虑到耗时,比如电梯上一层耗时,人上层楼耗时t1,下一楼耗时t2, 最后求总耗时

    5. 如果可以停的楼间不止一楼?

    6. 把以上所有因素都加在一起?

    每天早上叫醒你的不是闹钟,而是心中的梦~
  • 相关阅读:
    避免多次提交
    Django 10
    Django 08
    Django 07
    Django 06
    Django 05
    Django 04
    Django 03
    Django 02
    Django 01
  • 原文地址:https://www.cnblogs.com/vintion/p/4116869.html
Copyright © 2011-2022 走看看