首页 > 代码库 > 一道弱智贪心题
一道弱智贪心题
题意:有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; }
一道弱智贪心题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。