資料結構專題qvq

2021-08-26 23:26:42 字數 1851 閱讀 7009

傳送門:

由於每次只在最後加數我們就考慮乙個神奇的動態反向st表xd

#include #include #include #include #include #include #include #define ll long long

#define maxn 200000+10

#define inf 0x7fffffff

using namespace std;

char opt;

int n,len,t;

ll mo,x,maxi[maxn][21];

void insert(int u,ll x)

return 0;

}

傳送門:

線段樹染色,用乙個del陣列記錄該顏色有沒有被刪除,tag記錄區間的顏色

#include #include #include #include #include #include #include #define maxn 100010

using namespace std;

char opt[2];

bool del[maxn<<2],same[maxn<<2];

int ans1,ans2,n,cnt,st,ed;

int ll[maxn<<2],rr[maxn<<2],tag[maxn<<2];

void build(int l,int r,int num)

void pushdown(int num)

void modify(int l,int r,int num,int color)

pushdown(num);

if(ll[num]>=l&&rr[num]<=r)

same[num]=true,tag[num]=color;

modify(l,r,num<<1,color);

modify(l,r,num<<1|1,color);

}int main()

case 'b':}}

return 0;

}

傳送門:

一開始是學莫隊的時候來做這道題的,沒想到喪心病狂的管理居然把資料加強了,暴力的莫隊被卡成80啦!!

下面是莫隊演算法的**

#include #include #include #include #include #include #include #define maxn 1000010

#define maxm 1000010

using namespace std;

int n,m,blo,anss;

int pos[maxn],c[maxn],ans[maxn],cnt[maxn];

struct qwq

q[maxm];

int read()

while(isdigit(p))

return kk*xx;

}bool cmp(qwq x,qwq y)

q[maxn];

int read()

while(isdigit(ch))

return kk*xx;

}bool cmp(qwq x,qwq y)

int lowbit(int x)

void add(int x,int k)

int query(int x)

int main()

ans[q[i].id]=query(q[i].r)-query(q[i].l-1);

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

printf("%d\n",ans[i]);

return 0;

}

資料結構專題

一.並查集 主要操作 1.合併兩個不相交集合 2.判斷兩個元素是否屬於同一集合 時間複雜度 o n n 其中 x 對於x 宇宙中原子數之和,x 不大於4,事實上,路經壓縮後的並查集的複雜度是乙個很小的常數。模板題 include includeusing namespace std for poj ...

資料結構練習專題

下面我給大家帶來一些資料結構的題,供大家欣賞 一 棧 鐵軌試題描述 某城市有乙個火車站,鐵軌鋪設如圖所示,有n節車廂從a方向駛入車站,按進站順序編號為1至n。你的任務是判斷是否能讓它們按照某種特定的順序進入b方向的鐵軌並駛出車站。為了重組車廂,你可以借助中轉站c。這是乙個可以停放任意多節車廂的車站,...

資料結構專題總結

這幾天主要學習以及了解了幾種資料結構,只能說是大概理解了其作用,和基本使用方法,但還不能具體靈活運用。這裡主要談談對這幾個知識點的理解 首先是棧和佇列,主要是做了幾個關於棧的題目,佇列知識要與其他知識一起用,現在還不能知道其具體作用和用法。棧是主要特點是先進先出,在c 中有專門的類庫,但我更習慣用陣...