3809. 修改数组——AcWing题库
作者:XiaXinyu
日期:2021-08-19
原题链接
题目:给定一个长度为 n 的正整数数组 a1,a2,…,an。
你可以任意改变其中任意元素的值。
但是,改变后的元素的值仍需是正整数。
将一个元素的值从 a 变为 b 所需要付出的代价为 |a−b|。
对于一个正整数 t,如果 |ai−t|≤1,则称第 i 个元素能够与 t 匹配。
现在,请你指定一个正整数 t,并且用最小的代价修改整个数组,使得数组中所有元素都能够与 t 匹配。
指定的 t 不同,所需付出的最小代价也可能不同。
请你合理选择正整数 t,目标是让所需付出的最小代价尽可能小。
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据第一行包含整数 n。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
每组数据输出一行结果,首先输出你选择的正整数 t,然后输出使得数组中所有元素都能够与 t 匹配,所需付出的最小代价。
如果 t 有多种合理选择,则任选其一输出即可。
数据范围
1≤T≤20,
1≤n≤1000,
1≤ai≤100,
同一测试点内所有 n 的和不超过 1000。
输入样例:
2
3
10 1 4
5
1 1 2 2 3
输出样例:
3 7
2 0
思路:观察数据范围可知,只需枚举1-100个数并计算出最小花费即可(做题之前一定要看数据范围)。
代码:
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int T = in.nextInt();while(T-- != 0){int n = in.nextInt();var a = new int[n];for(int i = 0;i < n;i++) a[i] = in.nextInt();double cost = Double.POSITIVE_INFINITY;int x = 0;for(int i = 1;i < 100;i++){int t = 0;for(int j = 0;j < n;j++) {if(a[j] - i == 0) continue; t += Math.abs(a[j] - i) - 1;}if(cost > t){cost = t;x = i;}} System.out.println(x + " " + (int)cost);}}
}
时间复杂度:O(n * C)
(此处C = 100)
空间复杂度:O(n)
3809. 修改数组——AcWing题库相关推荐
- 如何实现修改c语言题库,编程培训 所有C语言题库(修改后).docx
编程培训 所有C语言题库(修改后).docx 试卷编号2203所属语言C语言试卷方案所有C语言题库试卷总分1220分共有题型1种一.程序填空 共122题 (共计1220分)第1题 (10.0分) 题号 ...
- 703. 数独检查 - AcWing题库
https://www.acwing.com/problem/content/705/ 数独是一种流行的单人游戏. 目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的 ...
- oracle分库分表原理_题库分库分表架构方案
方案 项目背景 在现在题库架构下,针对新购买的1300W多道数据进行整合,不影响现有功能.由于数据量偏多,需要进行数据的切分 目标场景 兼容旧的功能 对1300多W数据进行分库分表 需要对旧的数据进行 ...
- 基于SSM+VUE的题库刷题考试系统(附源码获取+论文)
使用技术: 后端:SpringBoot+SpringMvc+Mybatis+redis+tomcat 前端:Vue 功能模块: 用户端: 用户登录注册(注册模拟验证码注册,验证码统一都为123456) ...
- 48道C语言上机题参考答案,二级C语言上机题库参考答案(已修改).doc
二级C语言上机题库参考答案(已修改).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印 ...
- leetcode题库:4.两个排序数组的中位数
题目: /** *leetcode题库:4. 求两个排序数组的中位数 * * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . * 请找出这两个有序数组的中位数. ...
- 蓝桥杯:试题 历届真题 修改数组【第十届】【省赛】【研究生组】Java实现
代码实现 方法一: package com.jl;import java.util.Scanner;/*** 历届真题 修改数组[第十届][省赛][研究生组]* @author jinlei**/ p ...
- python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等
NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...
- [蓝桥杯][2019年第十届真题]外卖店优先级、修改数组、糖果、特别数的和、等差数列
个人题解链接,历届试题,正在更新中~ 文章目录 外卖店优先级 修改数组 糖果 特别数的和 等差数列 外卖店优先级 题目描述 "饱了么"外卖系统中维护着 N 家外卖店,编号 1 ∼ ...
- 洛谷刷题C语言:FILIP、修改数组、Fun、Šifra、Erinnerung
记录洛谷刷题QAQ [COCI2009-2010#3] FILIP 题目描述 给你两个十进制正整数 a,ba, ba,b,输出将这两个数翻转后的较大数. 「翻转」在本题中的定义详见「说明 / 提示」部 ...
最新文章
- Swift 本地推送通知UILocalNotification
- 细说Android 4.0 NDK编程pdf
- java枚举.toString_java – Make Enum.toString()本地化
- 过去一年25个amazing node.js 开源项目(2018版本)
- 计算机教育 如何投稿,高职院校计算机教育论文投稿教育杂志-教育论文投稿
- java文件操作和_JAVA文件操作类和文件夹的操作
- Asp.net邮件系统的模拟与实现源码
- linux虚拟机按键不好用,Linux 虚拟机 vim使用delete键没有退格效果
- [ SHELL编程 ] 远程服务器传输文件
- 在php中实现时间戳,怎么在PHP中对时间戳进行转化
- 在运行SSIS包时,如何动态更新变量值
- 服务器网口显示图像,简单的python3web服务器,可以在浏览器中显示图像
- Redis 保证数据一致性方案解析
- Pig的安装及基本使用
- 用jxcell导出图表到excel
- OFFICE中的VBA库的定义
- Android项目猜纸牌游戏之一 界面设计和资源文件的设计
- review设备管理
- 如何双开或多开skype
- Fatal message conversion error;message rejected;it will be dropped or routed to a dead letter exchan