思路

根据短作业优先平均等待时间最短的常识(默默感叹一句操作系统没白学),将Ti从小到大排序后,计算平均等待时间输出

//水题

题目描述

有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。

输入输出格式

输入格式:

输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。

输出格式:

输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

输入输出样例

输入样例#1: 复制

10
56 12 1 99 1000 234 33 55 99 812

输出样例#1: 复制

3 2 7 8 1 4 9 6 10 5
291.90

说明

n<=1000

ti<=1e6,不保证ti不重复

当ti重复时,按照输入顺序即可(sort是可以的)

import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
Muta m[]=new Muta[n];
for(int i=0;i<n;i++){
m[i]=new Muta();
m[i].v=in.nextInt();
m[i].o=i+1;
}
Arrays.sort(m,new Comparator<Muta>(){//按用时从小到大排序
public int compare(Muta a,Muta b){
return a.v-b.v;
}
});
long wait=0;
long sum=0;
for(int i=0;i<n;i++){
System.out.print(m[i].o+" ");//输出顺序
if(i>0)
wait+=m[i-1].v;//计算每个人的等待时间
sum+=wait;//计算总时间
}
System.out.println();
System.out.printf("%.2f",sum*1.0/n);//平均时间
} }
class Muta{
public int v;
public int o;
}

P1223_排队接水(JAVA语言)的更多相关文章

  1. (Java实现) 洛谷 P1223 排队接水

    题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...

  2. Java实现 蓝桥杯VIP 算法提高 排队打水问题

    算法提高 排队打水问题 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1.t2----tn为整数且各不相等,应如何安排他们的打水顺序才能使 ...

  3. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  4. Java语言的个人理解

    Java语言的个人理解(比价深层次吧) 大四的生活确实十分的奢靡,不锻炼,不读书,几乎就是当一天和尚撞一天钟的生活,太颓废了,还好自己不是这个样子,不过身体确实差了很多,昨天跑了一圈内环(4KM),今 ...

  5. 《JAVA语言程序设计》上课笔记

    教学目标:1.使学生了解JAVA课程的性质.定位.作用:为什么要学习JAVA?让学生知道如何学好JAVA: 教学内容: 一.        问几个问题 1.             你们到这里来干什么 ...

  6. 2019 Android 高级面试题总结 从java语言到AIDL使用与原理

    说下你所知道的设计模式与使用场景 a.建造者模式: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 使用场景比如最常见的AlertDialog,拿我们开发过程中举例,比如C ...

  7. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

  8. 数据结构与抽象 Java语言描述 第4版 pdf (内含标签)

    数据结构与抽象 Java语言描述 第4版 目录 前言引言组织数据序言设计类P.1封装P.2说明方法P.2.1注释P.2.2前置条件和后置条件P.2.3断言P.3Java接口P.3.1写一个接口P.3. ...

  9. 重塑云上的 Java 语言

    音乐无国界,但是音乐人有国界. 云原生亦如此.虽没有限定的编程语言,但应用所使用的编程语言已经决定了应用部署运行的行为. Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体 ...

随机推荐

  1. Gym 101170F Free Weights(二分)题解

    题意:给出两行,每一行都有n个数组,一共有2 * n个,大小为1~n,每个有两个.现在可以进行操作:拿出一个物品i,然后放到一个空格,花费i.可以任意平移物品,平移没有花费.每一行空间无限.要求你把一 ...

  2. XSS脚本汇总

    (1)普通的XSS JavaScript注入<SCRIPT SRC=http://***/XSS/xss.js></SCRIPT> (2)IMG标签XSS使用JavaScrip ...

  3. Dapr 正式发布1.0

    年前我写了一篇博客<Dapr 已在塔架就位 将发射新一代微服务>, 今天Dapr 正式发布了1.0 : Dapr Runtime v1.0.0 Dapr dotnet SDK v1.0.0 ...

  4. 前端水印方案 All In One

    前端水印方案 All In One base64 用户名 图片水印 <div id="wm" style="pointer-events: none; width: ...

  5. color recognition by image

    color recognition by image 通过图像进行颜色识别 https://imagecolorpicker.com/ unknown color origin pic grey bl ...

  6. Flutter 区分开发环境和生产环境

    Uri _baseUrl; final isProd = const bool.fromEnvironment('dart.vm.product'); if (isProd) { _baseUrl = ...

  7. js 截取固定长度字符串但不打断单词

    适用地方:英文网站中,比如面包屑导航处新闻标题过长.用css截取文本简介时将单词打断   // 使用方法 // 1.复制下面函数 // 2.调用 // 3.填参数  sliceString(targe ...

  8. 2021 NGK新机遇!---NGK生态所、星空计划双赛道爆发

    2021年数字加密货币行业迎来几大发展机遇:1.比特币为首的数量加密资产正处于另类资产向数字黄金定位的历史性巨大发展机遇中,2.Defi等新项目异军提起,形成丰富的行业生态,将在未来对旧有的金融格局产 ...

  9. Spring学习过程中遇到的No bean named 'beanId' is defined报错

    ApplicationContext applicationContext= new ClassPathXmlApplicationContext("bean.xml");Obje ...

  10. WLAN-AC+AP射频一劳永逸的调优方式

    AP射频调优组网图 射频调优简介 射频调优的主要功能就是动态调整AP的信道和功率,可以使同一AC管理的各AP的信道和功率保持相对平衡,保证AP工作在最佳状态.WLAN网络中,AP的工作状态会受到周围环 ...