第十四届蓝桥杯真题Java c组D.平均(持续更新)

news/2024/10/5 21:20:48/
  • 博客主页:音符犹如代码
  • 系列专栏:蓝桥杯
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

【问题描述】
        有一个长度为n的数组(n是10的倍数),每个数 Ai 都是区间[0,9]中的整数,小明发现数组里每种数出现的次数不太平均,而更改第 i 个数的代价为bi,他想更改着若干个数的值使得这 10 种数出现的次数相等(都等于n/10,请问代价和最少为多少。

【输入格式】
        输入的第一行包含一个正整数 n。
        接下来n行,第i行包含两个整数ai,bi,用一个空格分隔。

【输出格式】
        输出一行包含一个正整数表示答案。

【样例输入】
10
1 1
1 2
1 3
2 4
2 5
2 6
3 7
3 8
3 9
4 10

【样例输出】
        27

【样例说明】
        只更改第 1,2,4,5.7,8 个数,需要花费代价 1+2+4+5+7+8=27。

【评测用例规模与约定】
        对于20%的评测用例,n<=1000;
        对于所有评测用例n <= 100000,0<bi<=2×10^5。

java">import java.util.*;  public class Main {  public static void main(String[] args) {  // 创建Scanner对象以读取输入  Scanner sc = new Scanner(System.in);  // 读取第一个整数n,表示后续将有n个整数对  int n = sc.nextInt();  // 计算k值,每个分类需要忽略的最大数值数量(取整)  int k = n / 10;  // 创建一个HashMap,键为分类标签(0-9),值为该分类下的数值列表  HashMap<Integer, ArrayList<Integer>> hm = new HashMap<>();  // 初始化HashMap,为每个分类标签创建一个空的ArrayList  for (int i = 0; i < 10; i++) {  hm.put(i, new ArrayList<>());  }  // 读取n个整数对,并将数值添加到对应分类的列表中  for (int i = 0; i < n; i++) {  int label = sc.nextInt(); // 分类标签  int value = sc.nextInt(); // 数值  hm.get(label).add(value); // 将数值添加到对应分类的列表中  }  // 初始化结果变量  int ans = 0;  // 遍历每个分类,并处理其数值列表  for (int i = 0; i < 10; i++) {  // 获取当前分类的数值列表  ArrayList<Integer> values = hm.get(i);  // 对数值列表进行排序  Collections.sort(values);  // 计算需要累加的数值数量(列表大小减去k)  int m = values.size() - k;  // 累加最小的m个数值到结果变量中  for (int j = 0; j < m; j++) {  ans += values.get(j);  }  }  // 输出结果  System.out.println(ans);  // 关闭Scanner  sc.close();  }  
}


http://www.ppmy.cn/news/1535113.html

相关文章

区间覆盖(贪心)

给定 NN 个闭区间 [ai,bi][ai,bi] 以及一个线段区间 [s,t][s,t]&#xff0c;请你选择尽量少的区间&#xff0c;将指定线段区间完全覆盖。 输出最少区间数&#xff0c;如果无法完全覆盖则输出 −1−1。 输入格式 第一行包含两个整数 ss 和 tt&#xff0c;表示给定线段区间的两…

低功耗4G模组Air780E之串口通信篇

你对低功耗4G模组Air780E有多少了解&#xff1f; 今天我们来讲解低功耗4G模组Air780E的串口通信的基本用法&#xff0c;小伙伴们&#xff0c;学起来吧&#xff01; 一、硬件准备 780E开发板一套&#xff0c;包括天线、USB数据线。 USB转TTL工具或线&#xff08;例如ch340、…

Qt教程(001):Qt概述与安装

文章目录 一、Qt概述1.1 什么是Qt1.2 Qt优点1.3 Qt发展史1.4 支持的平台1.5 成功案例1.6 下载安装1.7 QtCreator介绍 一、Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的&…

红外画面空中目标检测系统源码分享

红外画面空中目标检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

25重庆长安深蓝控制器开发面试经验 深蓝最常见面试问题总结

【面试经历】 秋招气氛组选手的第一场面试,9.17网申,9.24电话约面,9.26线上面试。问得很细,全长约1个小时 1. 自我介绍、项目介绍 2.项目细节,遇到了哪些困难;有没有PCB设计经验DC-DC芯片选型,电源噪声的原因、怎么消除、 3.画BUCK和BOOST拓扑图,讲原理 4.了解MCU的主…

TX-LCN框架 分布式事务

一、三种事务模式 1&#xff09;LCN 基于XA协议&#xff0c;事务提交或回滚的操作由事务管理服务器统一告诉它管理的多个项目&#xff0c;也就是说在A事务&#xff0c;B事务的事务提交操作或回滚操作都是在同一时刻发生&#xff0c;并且要么都提交&#xff0c;要么都回滚。 LCN…

大数据分析入门概述

大数据分析入门概述 本文旨在为有意向学习数据分析、数据开发等大数据方向的初学者提供一个学习指南&#xff0c;当然如果你希望通过视频课程的方式快速入门&#xff0c;B站UP主戴戴戴师兄的课程质量很高&#xff0c;并且适合初学者快速入门。本文的目的旨在为想要了解大数据但…

AI 激活新势能,中小企业全媒体营销绽放无限可能

什么是全媒体营销&#xff1a; 全媒体营销是一种利用多种媒介渠道进行品牌、产品或服务推广的营销策略。它结合了传统媒体&#xff08;如电视、广播、报纸、杂志&#xff09;和新媒体&#xff08;如互联网、社交媒体、移动应用等&#xff09;的优势&#xff0c;以实现信息的广…