解题思路:按照题目意思可以得知,最少排队时间的方法是,按照打水时间少的依次进入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语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:635 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:481 |
人见人爱A+B (C语言代码)浏览:663 |
不会做的浏览:954 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1396 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
哥德巴赫曾猜测 (C语言代码)浏览:2562 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:727 |
简单的a+b (C语言代码)浏览:529 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:523 |