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

一道弱智贪心题

时间:2016-12-25 20:57:24      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:思想   main   define   class   int   log   sum   print   scanf   

题意:有N个人排队到M个水龙头去打水,他们装满水桶的时间T1,T2,…,Tn为整数且各不相等,求花费的最少时间。

用贪心的思想,先从小到大给这个时间排序,重新建一个数组,把前M个时间存起来,然后就是把后面的数一个一个填进去。

#include<stdio.h>
#include<algorithm>
using namespace std;
#define M 100000

int main(){
    int n,r;
    int sum=0;
    int a[M],b[M];
    scanf("%d %d",&n,&r);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    for(int i=0;i<r;i++){
        b[i]=a[i];
    }
    for(int i=r;i<n;i++){
        b[i]=b[i-r]+a[i];
    }
    for(int i=0;i<n;i++){
        sum=sum+b[i];
    }
    printf("%d\n",sum);
    return 0;
}

 

一道弱智贪心题

标签:思想   main   define   class   int   log   sum   print   scanf   

原文地址:http://www.cnblogs.com/Leonard-/p/6220380.html

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