洛谷 U138625 神來之筆

2022-03-20 01:53:21 字數 2719 閱讀 1649

洛谷傳送門

某日午後,seawayseawa**y一覺醒來,發現自己穿越到了俄羅絲,並成了羅絲(roseros**e)沙皇的御用藝術家......在反穿越失敗後,seawayseawa**y接受了這個事實,並努力地為女皇陛下效勞......

女皇陛下喜歡兩件事:藝術和種樹。一直以來,女皇陛下都致力於把這兩件事結合起來。所以她讓seawayseawa**y來完成這件事。女皇陛下把seawayseawa**y帶到了御花園,指著其中的一棵樹,向他描述了她對藝術的看法:女皇陛下認為,多彩就是藝術,但同時,顏色又不能太多,過多的顏色不叫藝術。她要seawayseawa**y依照她的看法,為這棵樹進行藝術地染色。

女皇陛下的其他藝術家已經把這棵樹染成了初始顏色。seawayseawa**y需要以此為基礎,對整棵樹的顏色進行修改,他會把某一棵子樹統一改變顏色(子樹的劃分以11號點為全樹總根)。同時,女皇陛下會在一旁監工,她會在任意時刻詢問seawayseawa**y某棵子樹一共有多少種顏色。

從檔案leebai.inleeba**i.i**n中讀入資料。

第一行為兩個整數n,mn,m,表示樹的節點數和總共的修改+詢問次數。第二行有nn個整數,表示每個節點初始的顏色。接下來的n-1n−1行,每行兩個整數u,vu,v,表示節點u,vu,v間連有一條邊。接下來的mm行,每行2-32−3個整數,按如下格式:

1\ x\ c:1 x

c:將以xx為根的子樹上所有節點(包括xx節點)的顏色改為cc。

2\ x:2 x:詢問以xx為根的子樹上所有節點的顏色數量。

輸出到檔案leebai.outleeba**i.out中。

對於每個詢問操作,給出確切的答案。

可能算是背景?女皇陛下vs老婆大人。(滑稽(惶恐

終於學會了如何更有區分度地出部分分。

一道水到可以讓我1a的題目。

應該50分還是很好拿的?

或者,至少20分是很好拿的?

顏色小於60種,且染色,一下子就是想到狀壓。由於60種,可以用乙個longlong來儲存這個狀態,然後用線段樹維護顏色種數即可。(也就是數1)區間合併的時候用或啦。

原題是不超過60種顏色,所以可以用longlong,這道題稍微毒瘤一點,100位,嘿嘿,其實還可以更大,但是懶得改資料了。

這個時候還是需要介紹bitset。我一直賊喜歡stl,大家也是知道的。

了解一下bitset的相關函式,還是很容易做的。

而且時間複雜度也並沒有比60的慢多少。如果加上讀入優化的,我感覺我還能再來16倍的。

算了,不毒瘤了,來:

**:

#include#include#define lson pos<<1

#define rson pos<<1|1

using namespace std;

const int maxn=4*1e5+10;

int n,m;

int col[maxn];

int tot,head[maxn],nxt[maxn<<1],to[maxn<<1];

int deep[maxn],fa[maxn],son[maxn],size[maxn];

int top[maxn],id[maxn],w[maxn],cnt;

bitset<64> tree[maxn<<2];

int lazy[maxn<<2];

void add(int x,int y)

void dfs1(int x,int f)

}void dfs2(int x,int t)

}void pushup(int pos)

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

build(lson,l,mid);

build(rson,mid+1,r);

pushup(pos);

}void mark(int pos,int l,int r,int k)

void pushdown(int pos,int l,int r)

void update(int pos,int l,int r,int x,int y,int k)

if(lazy[pos])

pushdown(pos,l,r);

if(x<=mid)

update(lson,l,mid,x,y,k);

if(y>mid)

update(rson,mid+1,r,x,y,k);

pushup(pos);

}bitset<64> query(int pos,int l,int r,int x,int y)

int main()

dfs1(1,0);

dfs2(1,1);

build(1,1,n);

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

else

}return 0;

}

洛谷 U6931 燈光

明天就是校園活動了,小明作為場地的負責人,將一切都布置好了。但是在活動的前幾天,校園裡的燈卻都壞掉了,無奈之下,只好再去買一批燈。但是很遺憾的是,廠家看馬上要過年了,就沒有在進貨了,現在只剩下n個發光值不同的燈,作為負責人,你需要,想辦法配出合適的燈。廠家有n盞剩下的燈,小明需要m盞燈,因為活動舉辦...

洛谷 U141384 電路

洛谷傳送門 seawayseawa y是熱愛學習的好孩子。有一天,seawayseawa y正在向他的物理老師lsplsp討教物理。ll老師向他介紹了一種神奇的電路,邏輯電路 ll老師說 邏輯電路是一種離散訊號的傳遞和處理 以二進位制為原理 實現數碼訊號邏輯運算和操作的電路。分組合邏輯電路和時序邏輯...

改數 洛谷 U5398

又是一年noip,科學館的五樓 我們看下這道題,我們來模擬一下 2,3,5,7,12 這其實就是乙個a i 1 a i i的序列 那熟悉的凌波教鞭,熟悉的憨厚的聲音,那熟悉的.哦,還有那熟悉的來自未來某位神牛的發言 老師,好像有個數寫錯了 給出乙個長度為n的整數序列a,你能改動最少的數,使之滿足a ...