作者: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题库相关推荐

  1. 如何实现修改c语言题库,编程培训 所有C语言题库(修改后).docx

    编程培训 所有C语言题库(修改后).docx 试卷编号2203所属语言C语言试卷方案所有C语言题库试卷总分1220分共有题型1种一.程序填空 共122题 (共计1220分)第1题 (10.0分) 题号 ...

  2. 703. 数独检查 - AcWing题库

    https://www.acwing.com/problem/content/705/ 数独是一种流行的单人游戏. 目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的 ...

  3. oracle分库分表原理_题库分库分表架构方案

    方案 项目背景 在现在题库架构下,针对新购买的1300W多道数据进行整合,不影响现有功能.由于数据量偏多,需要进行数据的切分 目标场景 兼容旧的功能 对1300多W数据进行分库分表 需要对旧的数据进行 ...

  4. 基于SSM+VUE的题库刷题考试系统(附源码获取+论文)

    使用技术: 后端:SpringBoot+SpringMvc+Mybatis+redis+tomcat 前端:Vue 功能模块: 用户端: 用户登录注册(注册模拟验证码注册,验证码统一都为123456) ...

  5. 48道C语言上机题参考答案,二级C语言上机题库参考答案(已修改).doc

    二级C语言上机题库参考答案(已修改).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印 ...

  6. leetcode题库:4.两个排序数组的中位数

    题目: /**   *leetcode题库:4. 求两个排序数组的中位数  *  *  给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 .  *  请找出这两个有序数组的中位数. ...

  7. 蓝桥杯:试题 历届真题 修改数组【第十届】【省赛】【研究生组】Java实现

    代码实现 方法一: package com.jl;import java.util.Scanner;/*** 历届真题 修改数组[第十届][省赛][研究生组]* @author jinlei**/ p ...

  8. 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 ...

  9. [蓝桥杯][2019年第十届真题]外卖店优先级、修改数组、糖果、特别数的和、等差数列

    个人题解链接,历届试题,正在更新中~ 文章目录 外卖店优先级 修改数组 糖果 特别数的和 等差数列 外卖店优先级 题目描述 "饱了么"外卖系统中维护着 N 家外卖店,编号 1 ∼ ...

  10. 洛谷刷题C语言:FILIP、修改数组、Fun、Šifra、Erinnerung

    记录洛谷刷题QAQ [COCI2009-2010#3] FILIP 题目描述 给你两个十进制正整数 a,ba, ba,b,输出将这两个数翻转后的较大数. 「翻转」在本题中的定义详见「说明 / 提示」部 ...

最新文章

  1. Swift 本地推送通知UILocalNotification
  2. 细说Android 4.0 NDK编程pdf
  3. java枚举.toString_java – Make Enum.toString()本地化
  4. 过去一年25个amazing node.js 开源项目(2018版本)
  5. 计算机教育 如何投稿,高职院校计算机教育论文投稿教育杂志-教育论文投稿
  6. java文件操作和_JAVA文件操作类和文件夹的操作
  7. Asp.net邮件系统的模拟与实现源码
  8. linux虚拟机按键不好用,Linux 虚拟机 vim使用delete键没有退格效果
  9. [ SHELL编程 ] 远程服务器传输文件
  10. 在php中实现时间戳,怎么在PHP中对时间戳进行转化
  11. 在运行SSIS包时,如何动态更新变量值
  12. 服务器网口显示图像,简单的python3web服务器,可以在浏览器中显示图像
  13. Redis 保证数据一致性方案解析
  14. Pig的安装及基本使用
  15. 用jxcell导出图表到excel
  16. OFFICE中的VBA库的定义
  17. Android项目猜纸牌游戏之一 界面设计和资源文件的设计
  18. review设备管理
  19. 如何双开或多开skype
  20. Fatal message conversion error;message rejected;it will be dropped or routed to a dead letter exchan

热门文章

  1. Redis 中的事件驱动模型
  2. 中国互联网今日正式满 20 岁
  3. HDU1164 Eddy's research I(解法二)
  4. 物件捆绑 背包问题 动态规划 求解
  5. 关于SharePoint 2010里Servers in farm页面里status意义的澄清
  6. PIX、ASA防火墙清除配置
  7. jvm系列:Java服务GC参数调优案例
  8. intellij idea 使用 git stash
  9. 关系型数据库的ACID特性
  10. ArrayList以及List的常用方法