sdutoj 皮卡丘的夢想2 狀態壓縮 線段樹

2021-08-02 02:50:03 字數 889 閱讀 7979

題目鏈結

思路:

我開了60個樹狀陣列水過去了....但是資料在大點就不行了

正解應該是線段樹+狀態壓縮吧,將60個寶石每一種壓縮成乙個二進位制位.

這樣向上回溯的時候記錄兩個子樹或就行了.

#includeusing namespace std;

#define lson l,m,node<<1

#define rson m+1,r,node<<1|1

const int maxn=100005;

long long tree[maxn*4];

void pushdown(int node)

void update(int a,int b,int l,int r,int node)

else

update(a,b,rson);

pushdown(node);

}void update2(int a,int b,int l,int r,int node)

else

update2(a,b,rson);

pushdown(node);

}long long query_find(int le,int ri,int l,int r,int node)

if(l==r)

int m=(l+r)>>1;

long long ans=0;

if(m>=le)

if(m>t;

for(int j=1;j<=t;j++)

else if(flag==2)

else

{long long ans=query_find(a,b,1,n,1);

int kk=0;

for(i=0;i<=62;i++)

{if(ans&(1ll<

皮卡丘的夢想2

皮卡丘的夢想2 time limit 1000ms memory limit 65536kb submit statistic discuss problem description 一天,乙隻住在 501 實驗室的皮卡丘決定發奮學習,成為像 leiq 一樣的巨巨,於是他向鎮上的賢者金桔請教如何才能...

皮卡丘的夢想

problem description 一天,乙隻住在 501 的皮卡丘決定發奮學習,成為像 leiq 一樣的巨巨,於是他向鎮上的賢者金桔請教如何才能進化成乙隻雷丘。金桔告訴他需要進化石才能進化,並給了他乙個地圖,地圖上有 n 個小鎮,並且標註了每個小鎮上可收集的進化石。但是皮卡丘拿到地圖就矇圈了,...

皮卡丘的夢想2(線段樹 二進位制狀態壓縮)

description 一天,乙隻住在 501 實驗室的皮卡丘決定發奮學習,成為像 leiq 一樣的巨巨,於是他向鎮上的賢者金桔請教如何才能進化成乙隻雷丘。金桔告訴他需要進化石才能進化,並給了他乙個地圖,地圖上有 n 個小鎮,他需要從這些小鎮中收集進化石。接下來他會進行 q 次操作,可能是打聽進化石...