Acwing 2556 第八大奇蹟(整體二分)

2021-10-24 13:44:22 字數 1333 閱讀 4559

題意:

有乙個長度為n的序列a,一開始所有數為0,

q次操作,操作有兩種:

(c x v):將a[x]修改為v

(q l r):問[l,r]中第8大的數

資料範圍:n,q<=1e5,0<=a(i)<=1e9

解法:問題可以離線,因此可以整體二分。

ps:這題樹套樹也可以做,但是整體二分省空間

code:

#include

using

namespace std;

const

int maxm=

2e5+5;

struct qqq[maxm]

,lc[maxm]

,rc[maxm]

;int mark[maxm]

;int ans[maxm]

;int c[maxm]

;int n,q;

intlowbit

(int i)

void

add(

int i,

int t)

}int

ask(

int i)

return ans;

}void

solve

(int l,

int r,

int ql,

int qr)

return;}

int mid=

(l+r)

>>1;

int cnt1=

0,cnt2=0;

for(

int i=ql;i<=qr;i++

)else

if(q[i]

.op==2)

}for

(int i=ql;i<=qr;i++)}

for(

int i=

1;i<=cnt1;i++

)for

(int i=

1;i<=cnt2;i++

)solve

(l,mid,ql,ql+cnt1-1)

;solve

(mid+

1,r,ql+cnt1,qr);}

signed

main()

;//刪掉之前的

} q[

++tot]=;

mark[x]

=y;}

else;}

}solve(0

,1e9,1

,tot)

;for

(int i=

1;i<=q1;i++

)return0;

}

第八單元總結

第八單元總結 一.系統服務的控制 1.systemd 系統初始化程式,系統開始的第乙個程序,pid為1 2.systemctl 命令 systemctl list units 列出當前系統服務的狀態 systemctl list unit files 列出服務的開機狀態 systemctl stat...

第八講作業

控制姓名長度為6 20 號碼長度11 性別只能允許輸入男或女 每一樣資訊不允許為空 coding utf 8 global gender global judge global slect global tel global name defmenu global slect print 名片 功能...

回歸第八題

無向圖縮點,不知道為啥我寫tarjan就是過不了 注意最後一定要把縮點後的大小按照從大到小開始刪邊 比如說你刪4條,在乙個環中可以另外得到3個分量,但是如果放在兩個環裡面分別為刪兩邊,則總和只能得到2個分量 我的 只能過80的點 我真的盡力了,現在晚上1.55我困得喲死 includeusing n...