洛谷傳送門
某日午後,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 ...