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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARC 100 C - Linear Approximation题解---三分法

發(fā)布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARC 100 C - Linear Approximation题解---三分法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 題目鏈接:

    https://arc100.contest.atcoder.jp/tasks/arc100_a

  • 分析:

    比賽時做這題想到一個瞎搞的方法就是在平均數(shù)上下波動一下取最小值,然后大佬yjw學(xué)長說這就是個嚴(yán)格單調(diào)單峰函數(shù)直接三分法就好了,雖然之前就聽過則還是第一次打

  • 三分法

    設(shè)有最大值函數(shù)f(x)定義域為\([l,r]\),我們在定義域內(nèi)找兩個點(diǎn)\(lmid,rmid(lmid<rmid)\)

    • \(f(lmid)<f(rmid)\),要么\(lmid\)\(rmid\)都在單峰左邊,要么\(lmid\)在左邊,\(rmid\)在右邊,但無論怎樣\(lmid\)都在單峰左邊,于是將\(l=lmid\)

    • \(f(rmid)<f(lmid)\),分析相似,將\(r=rmid\)

    • \(f(lmid)==f(rmid)\)emmm這個其實我也不知道怎么處理,隨便按上面一種情況來吧但總感覺不太穩(wěn)

  • 代碼:

#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cctype> #include <map> #include <queue> #include <algorithm> #define ri register int #define ll long long using namespace std; const int maxn=200005; const int inf=0x7fffffff; template <class T>inline void read(T &x){x=0;int ne=0;char c;while(!isdigit(c=getchar()))ne=c=='-';x=c-48;while(isdigit(c=getchar()))x=(x<<3)+(x<<1)+c-48;x=ne?-x:x;return ; } int n; ll a[maxn]; ll sum=0; inline ll solve(int k){ll cnt=0;for(ri i=1;i<=n;i++)cnt+=abs(a[i]-k);return cnt; } int main(){read(n);for(ri i=1;i<=n;i++){read(a[i]);a[i]=a[i]-i;}ll ans,lmid,rmid;ll l=-1e9,r=1e9;while(l<r-1){lmid=(l+r)>>1,rmid=(lmid+r)>>1; if(solve(lmid)>solve(rmid))l=lmid;else r=rmid;}if(solve(l)<solve(r))ans=l;else ans=r;printf("%lld\n",solve(ans));return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/Rye-Catcher/p/9255304.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的ARC 100 C - Linear Approximation题解---三分法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。