模擬試題 花園

2021-08-09 08:55:45 字數 2026 閱讀 5561

小豪有乙個花園,裡面有n個花棚,編號1..n,每個花棚裡有一定數量的花a i 。小豪花園的路十分神奇,可以使得任意兩個花棚之間僅有一條最短路,即形成樹結構,其中根節點是1號花棚。現在小豪打算修繕一下他的花園,重新分配每個花棚裡花的數量。為了能方便快捷地知道花園的情況,小豪現在需要你的幫助。具體地說,小豪共有m個操作。操作有三種:

1. 1 u k 表示如果乙個花棚在以u號花棚為根的子樹中,那麼小豪會把這個花棚花的數量模k

2. 2 u x 表示小豪將u號花棚花的數量變成x

3. 3 u v 表示小豪詢問從u號花棚走到v號花棚總共能看到的花的數量

你能幫助小豪嗎?

第一行有兩個正整數n和m,代表花棚的數量和小豪操作的個數。

接下來n−1行,每行兩個正整數u,v(1 ≤ u,v ≤ n,u 6= v),表示u號花棚與v號花棚直接有路相連。

下一行有n個非負整數a 1 ,a 2 ,...,a n ,表示起始時每個花棚中花的數量。

接下來m行,一行表示乙個操作,格式如題所述。(可參考樣例)

對於每個操作3輸出一行乙個整數表示結果。

8 7

1 2

2 3

2 4

2 5

1 6

6 7

6 8

1 2 3 4 5 6 7 8

3 3 6

1 2 3

2 2 4

3 4 8

2 3 11

1 1 5

3 3 7

12

20

9

【資料範圍】

對於20%的資料,n,m ≤ 2000

另外10%的資料,所有花棚構成一條鏈,且無操作1

另外20%的資料,無操作1

對於100%的資料,n,m ≤ 100000, ai ,x,k ≤ 10^8 , k ≥ 1

樹鏈剖分

三個操作:

1.對子樹取模

2.對單點修改

3.對路徑詢問

完成剖分之後,對於操作一,我們直接暴力修改對應的線段樹上的區間。通過維護區間max來判斷這個區間是否

需要取模。另外兩個就是標準的樹剖操作了。

#include#include#includeusing namespace std;

inline long long read()

long long n,m;

struct branch branch[200005];

long long h[100005],cnt=0;

inline void add(long long x,long long y)

long long c[100005];

long long size[100005],deep[100005];

long long top[100005],fa[100005],son[100005];

long long id[100005],pos[100005],low[100005];

inline void dfs1(long long v,long long pre,long long dep)

inline void mod(long long v,long long x)

change(v<<1,l,r,x);change(v<<1|1,l,r,x);

pushup(v);return ;

}inline void modify(long long v,long long k,long long x)

int main()cnt=0;

for(long long i=1;i<=n;i++)c[i]=read();

dfs1(1,0,1);dfs2(1,1);

build(1,1,n);

for(long long i=1;i<=m;i++)if(deep[x]ans+=ask(1,id[y],id[x]);

cout<} }

return 0;

}

注意點的編號與線段樹中的編號對應。

NOI省選模擬 小奇的花園

題目背景 小奇在家中的花園漫步時,總是會思考一些奇怪的問題。問題描述 小奇的花園有n個溫室,標號為1到n,溫室以及以及溫室間的雙向道路形成一棵樹。每個溫室都種植著一種花,隨著季節的變換,溫室裡的花的種類也在不斷發生著變化。小奇想知道從溫室x走到溫室y的路徑中 包括兩個端點 第t種花出現的次數。輸入格...

Toy Bricks(HZOI模擬試題)

ray又在npc問題了 這裡有乙個箱子,還有若干個玩具。我們可以假設玩具的數量是沒有上限的。我們還知道這個箱子是不規則的,或者可以說,他的外形比較像乙個矩形,但是內部卻有很多突起,這些突起很可惡,他可以一直突到玩具的頂蓋部。為了簡化這個npc問題,ray只保留了一種形狀的玩具。ps 玩具為 十 字形...

面試模擬試題2

一 前段時間,許多地方出台規定 機關和全額事業單位的在職職工,經批准自願離職到非公有制企業工作的,3年內原單位發給基本工資。3年期滿,繼續留在非公有制企業的,按規定辦理辭職手續,人事檔案和組織關係轉入人才交流中心管理 要求回原單位工作的,由原單位安排工作。這一舉措,倍受社會 矚目 成為大眾議論的焦點...