牛客编程巅峰赛S1第3场 - 黄金钻石 A.简单题 B.dfs C.并查集
鏈接:https://ac.nowcoder.com/acm/contest/6383/A
來(lái)源:牛客網(wǎng)
找臥底
時(shí)間限制:C/C++ 1秒,其他語(yǔ)言2秒
空間限制:C/C++ 262144K,其他語(yǔ)言524288K
64bit IO Format: %lld
題目描述
牛牛今天和大家玩了一個(gè)新游戲,除了牛牛以外還有n個(gè)人參加游戲,現(xiàn)在這n個(gè)人中的每個(gè)人從[1,n]中選擇一個(gè)數(shù)字,保證選出的數(shù)字均不重復(fù)。牛牛作為第n+1個(gè)人,充當(dāng)臥底的角色,要求臥底從1到n中選擇一個(gè)數(shù)字,現(xiàn)在將n+1個(gè)數(shù)字重新打亂順序,請(qǐng)找出臥底選擇的數(shù)字是多少。
示例1
輸入
復(fù)制
4,[1,2,1,4,3]
輸出
復(fù)制
1
備注:
其中1<=n<=100000。
要求時(shí)間復(fù)雜度為O(n),額外空間復(fù)雜度為O(1)
鏈接:https://ac.nowcoder.com/acm/contest/6383/B
來(lái)源:牛客網(wǎng)
時(shí)間限制:C/C++ 3秒,其他語(yǔ)言6秒
空間限制:C/C++ 262144K,其他語(yǔ)言524288K
64bit IO Format: %lld
題目描述
題意
在一顆有 nn 個(gè)結(jié)點(diǎn)且以 11 為根節(jié)點(diǎn)樹(shù)上,起初每個(gè)結(jié)點(diǎn)的初始權(quán)值為 00 。
現(xiàn)在有 qq 次操作,每次操作選擇將以 r_ir
i
?
為根節(jié)點(diǎn)的子樹(shù)上的所有結(jié)點(diǎn)權(quán)值增加 x_ix
i
?
。
求 qq 次操作后從 11 到 nn 每個(gè)結(jié)點(diǎn)的權(quán)值。
輸入
第一個(gè)參數(shù)為 nn,1\leq n \leq 100,0001≤n≤100,000
第二個(gè)參數(shù)為邊 (u_i, v_i)(u
i
?
,v
i
?
) 的集合,其中 (u_i, v_i)(u
i
?
,v
i
?
) 表示結(jié)點(diǎn) u_iu
i
?
與結(jié)點(diǎn) v_iv
i
?
之間有一條邊,1\leq u_i, v_i \leq n1≤u
i
?
,v
i
?
≤n
第三個(gè)參數(shù)為 qq,1 \leq q \leq 100,0001≤q≤100,000
第四個(gè)參數(shù)為 qq 次詢問(wèn)的 (r_i, v_i)(r
i
?
,v
i
?
) 的集合,1\leq r_i \leq n, 0 \leq \lvert v_i \rvert \leq 1000,0001≤r
i
?
≤n,0≤∣v
i
?
∣≤1000,000
返回
從 11 到 nn 每個(gè)結(jié)點(diǎn)的權(quán)值。
示例1
輸入
復(fù)制
5,[(2,5),(5,3),(5,4),(5,1)],2,[(1, 3), (2, -1)]
輸出
復(fù)制
[3,2,3,3,3]
說(shuō)明
第一次操作,將以 1 為根節(jié)點(diǎn)的子樹(shù)上的所有結(jié)點(diǎn)權(quán)值增加 3,此時(shí)結(jié)點(diǎn)的權(quán)值分別為 [3, 3, 3, 3, 3] ;
第二次操作,將以 2 為根節(jié)點(diǎn)的子樹(shù)上的所有結(jié)點(diǎn)權(quán)值增加 -1,此時(shí)結(jié)點(diǎn)的權(quán)值分別為 [3, 2, 3, 3, 3] ;
鏈接:https://ac.nowcoder.com/acm/contest/6383/C
來(lái)源:牛客網(wǎng)
題目描述
題意
牛牛有一個(gè)長(zhǎng)為 nn 的排列 pp ,與 mm 對(duì) (x_i, y_i)(x
i
?
,y
i
?
) 。
每對(duì) (x_i, y_i)(x
i
?
,y
i
?
) 表示可以將 p_{x_i}p
x
i
?
?
的值與 p_{y_i}p
y
i
?
?
的值互換。
mm 對(duì) (x_i, y_i)(x
i
?
,y
i
?
) 的使用順序與次數(shù)不限。
牛牛想知道,任意次操作之后他能得到的字典序最小的排列是什么
字典序定義:對(duì)于數(shù)字1、2、3…n的排列,不同排列的先后關(guān)系是從左到右逐個(gè)比較對(duì)應(yīng)的數(shù)字的先后來(lái)決定的。例如對(duì)于5個(gè)數(shù)字的排列 12354和12345,排列12345在前,排列12354在后。按照這樣的規(guī)定,5個(gè)數(shù)字的所有的排列中最前面的是12345,最后面的是 54321。(來(lái)自百度百科)
輸入
第一個(gè)參數(shù)為 nn,1\leq n \leq 100,0001≤n≤100,000
第二個(gè)參數(shù)為 mm,1\leq m \leq 100,0001≤m≤100,000
第三個(gè)參數(shù)為初始排列 pp,1\leq p_i\leq n1≤p
i
?
≤n
第四個(gè)參數(shù)為 mm 對(duì) (x_i, y_i)(x
i
?
,y
i
?
), 1\leq x_i, y_i\leq n, x_i \neq y_i1≤x
i
?
,y
i
?
≤n,x
i
?
?
=y
i
?
返回
字典序最小的排列
示例1
輸入
復(fù)制
5,3,[5,2,3,4,1],[(2,4),(1,4),(3,4)]
輸出
復(fù)制
[2,3,4,5,1]
說(shuō)明
總結(jié)
以上是生活随笔為你收集整理的牛客编程巅峰赛S1第3场 - 黄金钻石 A.简单题 B.dfs C.并查集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 备忘录app能否治愈拖延症?
- 下一篇: 三菱ST程序框架编写