BZOJ3052 WC2013 糖果公園

2022-05-12 14:29:22 字數 1007 閱讀 6949

**莫隊:

題目傳送門:

把問題搬到尤拉序上來就是裸的帶修改莫隊了。

每次加減某種顏色直接加減個數係數乘美味度即可。

時間複雜度:\(o(n^})\)

空間複雜度:\(o(n)\)

**如下:

#include #include #include using namespace std;

typedef long long ll;

const int maxn=1e5+5;

ll ans;bool vis[maxn];

int dep[maxn],f[maxn][18];

int v[maxn],w[maxn],lst[maxn],c[maxn];

int now[maxn],pre[maxn<<1],son[maxn<<1];

int n,m,q,block,tot,cnt1,cnt2,cnt,nowl,nowr,t;

int dfn[maxn<<1],l[maxn],r[maxn],sum[maxn],bel[maxn<<1];

int read()

void add(int a,int b)

void dfs(int fa,int u)

struct query

query(int _l,int _r,int _id,int _tim)

bool operator<(const query &a)const

bool cmp(query a,query b)

else

}sort(q+1,q+cnt1+1);

nowl=1,nowr=0,t=0;

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

}sort(q+1,q+cnt1+1,cmp);

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

printf("%lld\n",q[i].res);

return 0;

}

BZOJ 3052 wc2013 糖果公園

蒟蒻去做糖果公園了qaq 講道理速度能排rk11很開心啊 其實前人之述備矣 複雜度分析 推薦一波棟爺爺的題解 帶修改莫隊其實就是多一維時間 所以你需要資瓷修改和撤銷修改 然後就跟沒修改的莫隊其實差不多了 關於樹上莫隊 很明顯就是用dfs序這個套路 發現出現次數為奇數次的才會算到 棟老師題解那裡也有說...

BZOJ 3052 wc2013 糖果公園

讀題很容易知道這就是一道簡單的樹上帶修改莫隊,樹上待修改莫隊只要將待修改莫隊和樹上莫隊結合起來使用就可以了。感謝darkbzoj include include include include include include include include set include include i...

bzoj3052 wc2013 糖果公園

time limit 200 sec memory limit 512 mb submit 1438 solved 749 submit status discuss sample input 84131 2784 分析 沒想到這能用莫隊來做.先看資料,10w,應該是nlogn的演算法?時限有200...