並查集 牛客1080 B

2021-09-26 19:13:55 字數 1103 閱讀 8199

tokitsukaze有n個數,需要按順序把他們插入雜湊表中,雜湊表的位置為0到n-1。

插入的規則是:

剛開始雜湊表是空的。

對於乙個數x,在雜湊表中,如果(x mod n)的位置是空的,就把x放在(x mod n)的位置上。如果不是空的,就從(x mod n)往右開始找到第乙個空的位置插入。若一直到n-1都不是空的,就從位置0開始繼續往右找第乙個空的位置插入。

因為雜湊表總共有n個空位,需要插入n個數,所以每個數都能被插入。

現在tokitsukaze想知道把這n個數按順序插入雜湊表後,雜湊表中的每個位置分別對應的是哪個數。

第一行包含乙個正整數n(1≤n≤10^6)。

第二行包含n個非負整數x(0≤x≤10^9),這些數按從左到右的順序依次插入雜湊表。

輸出一行,n個數,第i個數表示雜湊表中位置為i所對應的數。(0≤i≤n-1)
示例1

複製

4

1 2 6 5

複製

5 1 2 6
插入1時,1 mod 4=1,是空的,在位置1插入。

插入2時,2 mod 4=2,是空的,在位置2插入。

插入6時,6 mod 4=2,不是空的,找到下乙個空的位置為3,所以在位置3插入。

插入5時,5 mod 4=1,不是空的,找到下乙個空的位置為0,所以在位置0插入。

示例2

複製

4

3 0 7 11

複製

0 7 11 3
插入3時,3 mod 4=3,是空的,在位置3插入。

插入0時,0 mod 4=0,是空的,在位置0插入。

插入7時,7 mod 4=3,不是空的,找到下乙個空的位置為1,所以在位置1插入。

插入11時,11 mod 4=3,不是空的,找到下乙個空的位置為2,所以在位置2插入。

**:

#includeusing namespace std;

int fa[1000009];

int b[1000009];

int findset(int x)

int main()

for(int i=0;i}

牛客 157B 鳳凰(樹上並查集,dfs)

題幹 傳說,鳳凰是百鳥之王。有一天,鳳凰要召開百鳥大會,百鳥國是乙個由n個節點組成的樹,每個節點有乙隻鳥,開會的節點定在1號節點。每只鳥可以花費1s通過一條邊,由於每根樹枝 邊 的載重有限,只允許乙隻鳥同時通過。作為會議的策劃師,htbest想知道百鳥國的所有鳥在1點集合最少需要多少秒。第一行有乙個...

堆 並查集 牛客模擬賽 牛半仙的魔塔

d 牛 半仙的魔 塔d 牛半仙的魔塔 d 牛半仙的 魔塔牛半仙的妹子被大魔王抓走了,牛半仙為了就他的妹子,前往攻打魔塔。魔塔為一棵樹,牛半仙初始在一號點。牛半仙有攻擊,防禦,血量三個屬性。除一號點外每個點都有魔物防守,魔物也有攻擊,防禦,血量三個屬性。每個怪物後面都守著一些藍寶石,獲得1藍寶石可增加...

牛客網機試題 最短路徑(並查集)

n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離 第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路 接下來m行兩個整數,表示相連的兩個城市的編號n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出 ...