題目鏈結
思路:
我開了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 次操作,可能是打聽進化石...