zoukankan      html  css  js  c++  java
  • 排队接水pascal程序

    题意

    找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。


    分析

    打水的时候花费时间越少的人越先打,那么所有人的等待时间之和就会最小,所以我们要先排序,再计算总时间


    var
    a,b:array[0..50000]of longint;
    n,i,j,w:longint;
    tj:real;
    begin
        readln(n);
        for i:=1 to n do
        begin
            read(a[i]);
            b[i]:=i;
        end;


        for i:=1 to n-1 do
        begin
            for j:=i+1 to n do
            if a[i]>a[j] then
            begin
                a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
                b[0]:=b[i];b[i]:=b[j];b[j]:=b[0];
            end;
        end;
        tj:=0;
        for i:=1 to n do
        write(b[i],' ');
        writeln;
        w:=0;
        for i:=n-1 downto 0 do
        begin
            inc(w);
            tj:=tj+a[w]*i;
        end;
        write((tj/n):0:2);
    end.

  • 相关阅读:
    python 冒泡排序
    python 文件操作
    20180401 lambda表达式
    python 全局变量 局部变量
    python 参数
    window.open
    正则表达式
    应用环境操作
    python 十大经典排序算法
    W3C------JS
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/9500215.html
Copyright © 2011-2022 走看看