日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Acwing104. 货仓选址:贪心(绝对值不等式)

發布時間:2025/4/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Acwing104. 货仓选址:贪心(绝对值不等式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 題目分析
    • 題目鏈接

題目分析

原題:
在一條數軸上有 N 家商店,它們的坐標分別為 A1~AN。

現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。

為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。

分析:

分別是各個地點為x1,x2,...xk,...xnx_1,x_2,...x_k,...x_nx1?,x2?,...xk?,...xn?,倉庫地址為x,則距離之和為
d=∣x1?x∣+∣x2?x∣+...+∣xk?x∣+...+∣xn?x∣使之最小d=|x_1-x|+|x_2-x|+...+|x_k-x|+...+|x_n-x|使之最小d=x1??x+x2??x+...+xk??x+...+xn??x使

這個證明需要用到分組的思想,頭和尾是一組,依次往里頭和尾結合。

d=(∣x1?x∣+∣xn?x∣)+(∣x2?x∣+∣xn?1?x∣)+...+兩兩一組d=(|x_1-x|+|x_n-x|)+(|x_2-x|+|x_{n-1}-x|)+...+兩兩一組d=(x1??x+xn??x)+(x2??x+xn?1??x)+...+

然后用到 ∣x?a∣+∣x?b∣≥b?a|x-a|+|x-b|≥b-ax?a+x?bb?a求最小值的思路,當x介于a,b之間的時候取最小值(絕對值的幾何意義)。 上面的d最后的最小值就是在每一組的之間(x1,xn),(x2,xn?1)...(x_1,x_n),(x_2,x_{n-1})...(x1?,xn?),(x2?,xn?1?)...如果要同時滿足,x只能落在最中間的那個區間或者中位數。

先排序,放在中位數的位置 a[n/2]。

ac代碼

#include<bits/stdc++.h> using namespace std;const int N= 100010; int a[N];int n;int main(){cin>>n;for(int i=0;i<n;i++) cin>>a[i];sort(a,a+n);int res=0;for(int i=0;i<n;i++) res+=abs(a[i]-a[n/2]); //放在中位數的位置cout<<res<<endl;}

題目鏈接

Acwing104. 貨倉選址

總結

以上是生活随笔為你收集整理的Acwing104. 货仓选址:贪心(绝对值不等式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。