解题思路:按照题目意思可以得知,最少排队时间的方法是,按照打水时间少的依次进入1....m队列排队打水,
而且每个队伍最后一个人不需要等待,即m个人不需要等待,每个人的等待时间为前一个人的等待时间加上他的打水时间
注意事项:
参考代码:
import java.util.Arrays; import java.util.Scanner; public class 打水问题 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt();//人数 int a[]=new int[n]; int m=in.nextInt();//水龙头数 for(int i=0;i<n;i++){ a[i]=in.nextInt(); } Arrays.sort(a); int j=0;int temp[]=new int[m]; int result[]=new int[m]; int sum=0; //i表示第几个水龙头,temp【i】表示当前这个人的打水等待时间 //最后一个人和不需要等待,总共m个人不需要等待 while(j<n-m){ for(int i=0;i<m&&j<n-m;i++,j++){ temp[i]+=a[j]; sum+=temp[i]; } } System.out.println(sum); } }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:763 |
计算质因子 (C++代码)浏览:1642 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:574 |
WU-输入输出格式练习 (C++代码)浏览:1082 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:701 |
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:476 |
简单的a+b (C语言代码)浏览:580 |
数组与指针的问题浏览:717 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:883 |