疑難雜題筆記 修改陣列

2021-10-04 18:48:29 字數 1016 閱讀 3310

給定乙個長度為 n 的陣列 a=[a1,a2,⋅⋅⋅an],陣列中有可能有重複出現的整數。

現在小明要按以下方法將其修改為沒有重複整數的陣列。

小明會依次修改 a2,a3,⋅⋅⋅,an。

當修改 ai 時,小明會檢查 ai 是否在 a1∼ai−1 **現過。

如果出現過,則小明會給 ai 加上 1;如果新的 ai 仍在之前出現過,小明會持續給 ai 加 1,直到 ai 沒有在 a1∼ai−1 **現過。

當 an 也經過上述修改之後,顯然 a 陣列中就沒有重複的整數了。

現在給定初始的 a 陣列,請你計算出最終的 a 陣列。

輸入格式

第一行包含乙個整數 n。

第二行包含 n 個整數 a1,a2,⋅⋅⋅,an。

輸出格式

輸出 n 個整數,依次是最終的 a1,a2,⋅⋅⋅,an。

資料範圍

1≤n≤105,

1≤ai≤106

輸入樣例:

52 1 1 3 4

輸出樣例:

疑難雜題 距離(LCA)

給出 n 個點的一棵樹,多次詢問兩點之間的最短距離。注意 邊是無向的。所有節點的編號是 1,2,n。輸入格式 第一行為兩個整數 n 和 m。n 表示點數,m 表示詢問次數 下來 n 1 行,每行三個整數 x,y,k,表示點 x 和點 y 之間存在一條邊長度為 k 再接下來 m 行,每行兩個整數 x,...

修改陣列 平衡樹 維護區間 經典題

給定乙個長度為 n 的陣列 a a1,a2,an 陣列中有可能有重複出現的整數。現在小明要按以下方法將其修改為沒有重複整數的陣列。小明會依次修改 a2,a3,an。當修改 ai 時,小明會檢查 ai 是否在 a1 ai 1 現過。如果出現過,則小明會給 ai 加上 1 如果新的 ai 仍在之前出現過...

acwing演算法學習 疑難雜題 剪格仔

1.首先判斷有沒有兩 聯通塊 2.然後搜尋 這裡不是搜尋一筆畫畫完的那種 3.dfs 4.列舉每乙個dfs的點的四個方向,都放入s當中 5.再進行一次dfs 6.注意判重,搜過的就不再搜了 搜尋方式 生成雜湊 include define x first define y second using ...