JZOJ4603 顏料大亂鬥

2021-07-14 23:35:17 字數 1346 閱讀 4074

(這裡就不罵辣雞出題人了)

這題查詢和修改區間(l

,r) 竟然

l 可以大於

r!!

而且白色是顏料1!!!!

注意上面那些細節,開30顆線段樹就可以ac了。

#include

#include

#include

#include

#define fo(i,j,k) for(int i=j;i<=k;i++)

#define fd(i,j,k) for(int i=j;i>=k;i--)

#define n 100001

using namespace std;

bool tr[n*4][31];

int g[n*4];

int a[n];

bool bz[31];

int n,c,m;

void put(int v,int l,int r)

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

int mid=(l+r)/2;

build(v*2,l,mid);

build(v*2+1,mid+1,r);

tr[v][1]=tr[v*2][1]|tr[v*2+1][1];

g[v]=0;

}void change(int v,int l,int r,int

x,int

y,int t)

put(v,l,r);

int mid=(l+r)/2;

if(y

<=mid) change(v*2,l,mid,x,y,t);

else

if(x>mid) change(v*2+1,mid+1,r,x,y,t);

else

fo(i,1,c)

tr[v][i]=tr[v*2][i]|tr[v*2+1][i];

}int ans=0;

void find(int v,int l,int r,int

x,int

y) put(v,l,r);

int mid=(l+r)/2;

if(y

<=mid) find(v*2,l,mid,x,y);

else

if(x>mid) find(v*2+1,mid+1,r,x,y);

else

}int main()

else}}

JZOJ 4603 顏料大亂鬥

畫師傅又要開始畫畫了,這次他花了三天三夜將一堵牆塗成了白色。但是畫師傅有個頑劣的 小花,小花討厭畫師傅對ta始亂終棄,所以趁 畫師傅不在用不同的顏料將牆塗來塗去。然而畫師傅為了保護他的大作,設定了乙個監控機制a。a每隔一段時間會 查珣某一段牆上的顏料的種類數,並將其記錄下來。現在畫師傅回來了,看到五...

NOIP模擬 顏料大亂鬥

開始看到前面的題目那麼水,到這題時就開始胡思亂想了,待修改莫隊?樹套樹?30棵線段樹?然後我打了30棵線段樹,常數十分的大啊!超時30分tat。然後旁邊的人把30個顏色的值放到同乙個節點上,然後就對了,常數小而已嘛!雖然兩個方法的時間複雜度理論上是一樣的。其實就是每個節點儲存30個顏色是否出現過,然...

前端打包工具大亂鬥

過去很長一段時間,人們使用 webpack,或基於 webpack taro 的外掛程式系統,構建複雜應用 隨著專案複雜度的公升高,一層層 loader 和 plugin,將開發鏈路大大延長 過長的開發鏈路,除了打包時間變慢,更重要的是嚴重影響力除錯,測試,維護 除此之外,case by case ...