题目要求

P1583题目链接

分析

感觉需要排两次序,一次是为了获取额外权重而进行的排序,另一次是加上额外权重以后为了得到最终权重而进行的排序。

为了便于随机访问,我还是选择了数组这个线性结构。

另外,在处理过程中为了方便起见,我使用了Person这个类,将id和value封装在一起。

排序的时候使用了lambda表达式……

AC代码(Java语言描述)

import java.util.Arrays;
import java.util.Scanner;public class Main {private static class Person {Integer value;Integer id;Person(int value, int id) {this.value = value;this.id = id;}}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt(), k = scanner.nextInt();Person[] person_array = new Person[num];int[] external_array = new int[10];for (int i = 0; i < 10; i++) {external_array[i] = scanner.nextInt();}for (int i = 0; i < num; i++) {person_array[i] = new Person(scanner.nextInt(), i+1);}scanner.close();Arrays.sort(person_array, (person1, person2) -> {int result = -person1.value.compareTo(person2.value);return result == 0 ? person1.id.compareTo(person2.id) : result;});for (int i = 0; i < num; i++) {person_array[i].value += external_array[i%10];}Arrays.sort(person_array, (person1, person2) -> {int result = -person1.value.compareTo(person2.value);return result == 0 ? person1.id.compareTo(person2.id) : result;});StringBuilder result = new StringBuilder();for (int i = 0; i < k; i++) {result.append(person_array[i].id).append(" ");}System.out.println(result.toString().trim());}}

排序分发“魔法照片”(洛谷P1583题题解,Java语言描述)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 生日排序(洛谷P1104题题解,Java语言描述)

    题目要求 P1104题目链接 分析 一个典型的排序题,我们将针对 year.month.day.id 四个属性进行排序,并输出对应的 name . 使用面向对象,封装一个类,再使用sort做下处理就行 ...

  4. 按字母位置关系给数字排序(洛谷P4414题题解,Java语言描述)

    题目要求 P4414题目链接 分析 这题其实就是排序,特别水,因为只有三个数-- 问题是这排序咋排呢?也不是那么直接的,因为是按照ABC之间位置关系排一下. 其实简单处理的话就是先排序,直接按照ABC ...

  5. [计数排序]统计三个数和的[最大概率](洛谷P2911题题解,Java语言描述)

    题目要求 P2911题目链接 分析 我用暴力思想做的,对每种和进行计数. 暴力的基本思想是计数排序,开一个数组,计数最后按照要求得到结果. 遍历的过程就很暴力哈哈哈-- 这位大神用期望做的,Orz → ...

  6. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  7. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  8. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  9. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

最新文章

  1. java工程化_(二)Java工程化--Maven实践(示例代码)
  2. ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测...
  3. linux运行脚本文件python,Python脚本:Linux自动化执行Python脚本
  4. iOS Newsstand Tutorial
  5. 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg
  6. C语言学习笔记--位运算
  7. 计算机毕设分词,毕业设计(论文)+计算机科学与技术+中文分词方法研究与实现论文全文.doc...
  8. 知识技能归档--CA-PKI体系-20210324
  9. Spring Bean的生命周期例子
  10. spring 容器的理论知识
  11. 49. Element removeAttribute() 方法
  12. Thread与Runnable的区别
  13. 一道综合练习题实践list及dictionary集合类
  14. Mysql 按 create_time 排序导致的问题
  15. Golang中MYSQL驱动
  16. 微信小程序直播插件live-player-plugin使用
  17. 和Keyle一起学ShaderForge - Overview
  18. 微信公众平台怎么发PDF文件?
  19. linux mkdir命令用法,常用Linux运维命令 - mkdir命令用法详解
  20. 印光大师、净空法师:法师、居士示现神通需注意哪些事项?

热门文章

  1. postgresql模糊匹配正则表达式性能问题
  2. (mac)阿里云ECS服务器配置过程
  3. codevs4203山区建小学
  4. 03-sizeof的用法
  5. 数字图像的5种增强处理
  6. Oracle推出支援.NET 3.5与Visual Studio 2008的开发工具
  7. 蓝桥杯第八届省赛JAVA真题----Excel地址
  8. resnet50结构_无需额外数据、Tricks、架构调整,CMU开源首个将ResNet50精度提升至80%+新方法
  9. win10运行vue项目_vue+webpack在window10环境下搭建及遇到的问题
  10. was6 linux 卸载,重新安装was61