傳送門:
由於每次只在最後加數我們就考慮乙個神奇的動態反向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 中有專門的類庫,但我更習慣用陣...