【CODEMATE】最小值 粤港澳信息学创新大赛 Python赛项 小学组、初中组CMP0001:最小值/高中组/体验题库CMEP46:最小值/编程题:P03886/列表排序/排序算法

前言

  想要了解粤港澳信息学创新大赛信息、有什么项目可以报名的可以查看上一篇博客:【CODEMATE】比较 粤港澳信息学创新大赛 Python赛项 初中组CMP0008:比较/高中组/体验题库CMEP45:比较/编号P03850/任意进制数之间比较/任意进制转换


  
  

问题描述

知识点:排序-排序概念/选择排序/插入排序/冒泡排序 体验题库 Python体验  难度值:4  尝试: 35  AC:1  上传者

  题目描述

  小明最近在学习数学问题,他遇到了一个有趣的问题。现在小明在纸上写了 2n 个数 a1,a2,a3,…,a2n。他希望将这些数两两一组划分,计算组内元素的差的绝对值再求和,使得和最小,即他希望将这些数填入下面这个式子中的未知数中,使得下面这个式子运算结果尽可能小。

  |x2-x1| + |x4-x3| + |x6-x5| + … + |x2n-x2n-1|

  请你帮助小明解决这个问题。

  输入格式

  第一行包含一个整数 n

  第二行包含 2n 个整数,表示数的值。每两个数之间用空格分隔。

  输出格式

  输出一个整数,表示表达式的最小值。

  Samples
  输入数据 1

2
1 3 2 4

  输出数据 1

2

  样例解释 1

  |1-2|+|3-4|=2,此时值最小

  数据范围与提示

  n ≤ 103 , 0 ≤ ai ≤ 109


  
  

做题思路、解决过程

输入、输出的代码思路

  通过读题可以得知:

  本程序至少有 3 个变量:n(决定列表长度)、li(用列表存放 2n 个整数)、min(表达式最小值)

  1.输入部分分为两行,第一行接受一个参数 n,第二行接收一个长度为 2n 的列表。

  2.输出部分为一个整数 min,计算 2n 个数两两相减后相加最小值

  确定了以上两点,写代码时就要按着输入输出这两点要求去写。

  首先,第 1 点(输入)的第一行:定义一个变量 n ,n 的值从键盘获取:

n = int(input())

  

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值