BZOJ2038,小Z的襪子(莫隊演算法)

2021-09-23 01:47:14 字數 788 閱讀 3224

莫隊演算法。

這道題wa了很多次,猜測可能是跟oj系統有關,有點坑。

**如下:

#include#include#include#includeusing namespace std;

typedef long long ll;

const int maxn=5e4+5;

const int mm=2e6+5;

int block,ans1[maxn],ans2[maxn],a[maxn];

int temp,num[maxn],left,right;//num記錄當前區間內所有種類的襪子的數量,temp記錄當前區間內可取的方案總數,兩者會隨著left,right指標的變化而變化

struct query

q[maxn];

bool cmp(query x,query y)

ll func(ll n,ll m); //計算組合數c(n,m)

void add(int x) //區間擴張,x為襪子的種類

void remove(int x) //區間收縮,原理同上

int main()

sort(q+1,q+1+m,cmp);

left=right=1;

temp=0;

add(a[1]);

for(int i=1;i<=m;i++)

for(int i=1;i<=m;i++)

/**/

return 0;

}ll func(ll n,ll m)

BZOJ2038 小Z的襪子 莫隊

bzoj2038 題意 q 5000 次詢問,問在區間中隨意取兩個值,這兩個值恰好相同的概率是多少?分數表示 感覺自己複述的題意極度抽象,還是原題意有趣 逃 思路 設在l到r這個區間中,x這個值得個數為a個,y這個值的個數為b個,z這個值的個數為c個。那麼答案即為 a a 1 2 b b 1 2 c...

BZOJ 2038 小Z的襪子(莫隊演算法)

莫隊演算法的話,看這個比較好懂 net bossup article details 39236275 不過這裡面的部落格的 貌似有點問題,所以 的話,net lwt36 article details 50583757 這個是對的,看我的也行。什麼時候用莫隊?1 區間不會被修改 2 可以離線 3 ...

BZOJ2038 小Z的襪子(莫隊演算法)

題目 分析 莫隊演算法 莫隊演算法是一種思想 處理問題 不帶修改的區間詢問 使用要求 l 1,r l,r 1 的結果可由 l,r 的答案在o 1 或o logn 的時間內推出 具體步驟 1 對整個區間軸分成根號n塊 2 以l所在的塊的編號為第一關鍵字,r為第二關鍵字給所有詢問排序方便處理 3 對於每...