zoukankan      html  css  js  c++  java
  • XYNUOJ 1248 排队打水问题

    题目描述

    有n个人排队到m个水龙头去打水,他们装满水桶的时间t1, t2 , ……, tn为整数且各不相同,应如何安排他们的打水顺序才能使他们花费的总时间最少?  只有一组输入数据哦。

    输入

    4 2 ( n m )

    2 6 4 5 (t1 t2 …… tn)

    输出

    23(所有人的花费时间总和)

    样例输入

    4 2
    2 6 4 5

    样例输出

    23
    总是出现运行错误,思路很正确,不过还好终于过啦
    //AC

    #include <stdio.h>
    #include<algorithm>
    using namespace std;
    int cmp(int a, int b)
    {
    return a < b;
    }
    int main()
    {
    int n, m, i, sum = 0;
    int a[1000], b[1000]; //总时间=每个人打水所用时间加等待时间
    scanf("%d %d", &n, &m);
    for(i = 0; i < n; i++)
    {
    scanf("%d", &a[i]);
    }
    sort(a,a+n);
    for(i = 0; i < m; i++) // 前m-1个水龙头 每个人等待的时间为0
    {
    b[i] = a[i];
    }
    for(i = m; i < n; i++) //开始出现循环,第m个人花费时间=个人打水时间加等待时间
    {
    b[i] = b[i - m] + a[i];
    }
    for(i = 0; i < n; i++)
    {
    sum += b[i];
    }
    printf("%d ",sum);
    return 0;
    }

     
  • 相关阅读:
    福尔摩斯的约会 (20)
    数素数 (20)
    STL源码分析-priority_queue
    STL源码分析-bitset
    STL源码分析-rbtree
    STM32自动生成精美图案
    STL源码分析-function
    STL源码分析-list
    STL源码分析-iterator
    STL源码分析-traits
  • 原文地址:https://www.cnblogs.com/hys1258414454/p/7267103.html
Copyright © 2011-2022 走看看