当前位置: 首页 > news >正文

【在数轴上找最优位置,使移动距离最短】

L1-4 破碎的心,无法挽回的距离

题目描述:

YFffffff 最近在感情上遭受了失败,他的心也破碎成了n块碎片,散落在了数轴上的 n 个位置。

你是一个情感修复师,作为 YFffffff 的好友,你试图将这些破碎的心重新聚集到一个位置,希望能将他们拼凑完整。

然而,移动一颗破碎的心会消耗巨大的情感能量,移动距离的平方就是消耗的能量值(即从位置i移动到位置x,消耗能量为(x−i)2)。

每颗破碎的心代表了 YFffffff 一段零碎的回忆,而将它们聚集到一起的过程,象征着试图修复那些无法挽回的感情。

你的任务是找到一个最佳的目标位置整数 x ,使得将所有破碎的心移动到 x 位置所消耗的总情感能量最少。

然而,即使你完成了任务,这些心是否真的能重新完整,仍然是一个未知数……

输入格式:

一个整数n(1≤n≤100),表示破碎的心的数量。
一个长度为n的数组a,其中a[i](1≤a[i]≤100)表示第i颗破碎的心的位置。

输出格式:

一个整数,表示将所有破碎的心移动到同一位置所消耗的最小总情感能量。

输入样例1

2
1 4

输出样例1

5

输入样例2

7
14 14 2 13 56 2 37

输出样例2

2354

方法一:因为数据范围不大,故可以遍历每个位置求最小耗能

#include<bits/stdc++.h>
using namespace std;
int a[105];
int main()
{
    int n,mi=1e9;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=a[0];i<=a[n-1];i++)
    {
        int sum=0;
        for(int j=0;j<n;j++)
        {
            sum+=(a[j]-i)*(a[j]-i);
        }
        mi=min(sum,mi);
    }
    cout<<mi;
    return 0;
    
}

法二:通过数学方法计算出最优位置是n个位置的平均值,如果求平均值时除不尽,就再算平均值+1的位置的结果,取min。

#include<bits/stdc++.h>
using namespace std;
int a[105];
int main()
{
    int n,sum=0,res1=0,res2=0,k=1;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
            sum+=a[i];
    }
    int x,y;
    x=sum/n;
    y=sum%n;
        for(int i=1;i<=n;i++)
        {
            res1+=(a[i]-x)*(a[i]-x);
        }
    if(y!=0)
    {
        x=x+1;
        for(int i=1;i<=n;i++)
        {
            res2+=(a[i]-x)*(a[i]-x);
        }
        res1=min(res1,res2);
    }
    cout<<res1;
    return 0;
    
}

相关文章:

  • 【区块链 + 商贸零售】商小萌小程序 | FISCO BCOS 应用案例
  • uniapp路由跳转导致页面堆积问题
  • 51单片机和STM32 入门分析
  • RSA后台解密报错:javax.crypto.BadPaddingException: Message is larger than modulus
  • 4.1--入门知识扫盲,ISO知识体系介绍(看一遍,协议啥的全部记住)
  • Android Zygote的进程机制
  • nginx配置txt文件点击链接后下载
  • 【ES6新特性】默认参数常见用法
  • (C语言)斐波那契数列(递归求解)
  • uniapp-x vue 特性
  • 通过 API 将Deepseek响应流式内容输出到前端
  • 论文精度:Transformers without Normalization
  • 提示词模板
  • KNN算法性能优化技巧与实战案例
  • vuex持久化存储,手动保存到localStorage,退出登录时清空vuex及localStorage
  • 【数据库】掌握MySQL事务与锁机制-数据一致性的关键
  • Vue:单文件组件
  • Spring Boot 启动顺序
  • k8s-coredns-CrashLoopBackOff 工作不正常
  • QT多媒体播放器类:QMediaPlayer
  • 日本一季度实际GDP环比下降0.2%
  • 中国证券业协会修订发布《证券纠纷调解规则》
  • 张广智︱“编年事辑”:打开学人心路历程的窗户
  • 商务部就开展加强战略矿产出口全链条管控工作应询答记者问
  • 外交部:中方对美芬太尼反制仍然有效
  • 上海145家博物馆、73家美术馆将减免费开放