Week2_2041干草堆(差分/前綴和)

學(xué)到了一個新的STL:nth_element
位于頭文件algorithm中亮曹,這個相當(dāng)于是算法課本第二章的線性時間選擇笆包,在線性時間內(nèi)選擇出第k大/小個元素坞生,非常的簡單
主要的原理是把第k個位置的交換一下坤候,所以最后輸出arr[k]就好
用法

// 選出第k個元素
nth_element(arr+1,arr+k,arr+n+1);
nth_element(arr.begin(),arr.begin()+k,arr.end(),cmp);

// 輸出結(jié)果
cout<<arr[k];

開始解題

題目鏈接

這個題目運用到了差分的知識點,模板題

前綴和

如果想求數(shù)組arr[l,r]之間的和间护,可以引入一個數(shù)組ed[r]表示的是arr[1,r]的值亦渗,即
ed[i] = \begin{cases} arr[1] & i=1 \\ ed[i-1]+arr[i] &else \end{cases}
就可以將問題轉(zhuǎn)換為ed[r]-ed[l-1]

差分

長度為 n 的整數(shù)序列,m 個操作汁尺,每個操作包含三個整數(shù) l,r,c法精,表示將序列中 [l,r] 之間的每個數(shù)加上 c。輸出進行完所有操作后的序列痴突。

解法:給區(qū)間[l, r]中的每個數(shù)加上c:
B[l] += c, B[r + 1] -= c

#include<bits/stdc++.h>
using namespace std;
int n,m,l,r,c;
int arr[100005];
int ed[100005];
int main(){
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&arr[i]);
        ed[i]=arr[i]-arr[i-1];
    }
    while(m--){
        scanf("%d%d%d",&l,&r,&c);
        ed[l]+=c;
        ed[r+1]-=c;
    }
    for(int i=1;i<=n;i++){
        ed[i]+=ed[i-1];
        cout<<ed[i]<<" ";
    }
    return 0;
}

本題解法

所以就只需要計算套用差分模板

#include<iostream>
#include<algorithm>
using namespace std;
int N,K,A,B;
int arr[1000005];
int main(){
    cin>>N>>K;
    for(int i=1;i<=K;i++){
        cin>>A>>B;
        arr[A]++;
        arr[B+1]--;
    }
    for(int i=1;i<=N;i++){
        arr[i]+=arr[i-1];
    }
    nth_element(arr+1,arr+(N+1)/2,arr+N+1);
    cout<<arr[(N+1)/2];
    return 0;
}
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搂蜓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辽装,更是在濱河造成了極大的恐慌帮碰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件如迟,死亡現(xiàn)場離奇詭異收毫,居然都是意外死亡,警方通過查閱死者的電腦和手機殷勘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門此再,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玲销,你說我怎么就攤上這事输拇。” “怎么了贤斜?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵策吠,是天一觀的道長。 經(jīng)常有香客問我瘩绒,道長猴抹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任锁荔,我火速辦了婚禮蟀给,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阳堕。我一直安慰自己跋理,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布恬总。 她就那樣靜靜地躺著前普,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壹堰。 梳的紋絲不亂的頭發(fā)上拭卿,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天骡湖,我揣著相機與錄音,去河邊找鬼记劈。 笑死勺鸦,一個胖子當(dāng)著我的面吹牛并巍,可吹牛的內(nèi)容都是我干的目木。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼懊渡,長吁一口氣:“原來是場噩夢啊……” “哼刽射!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剃执,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤誓禁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肾档,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摹恰,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年怒见,在試婚紗的時候發(fā)現(xiàn)自己被綠了俗慈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡遣耍,死狀恐怖闺阱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舵变,我是刑警寧澤酣溃,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站纪隙,受9級特大地震影響赊豌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绵咱,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一碘饼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧麸拄,春花似錦派昧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淮椰,卻和暖如春五慈,著一層夾襖步出監(jiān)牢的瞬間纳寂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工泻拦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毙芜,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓争拐,卻偏偏與公主長得像腋粥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子架曹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容