Chip Factory(字典樹刪減)(模板)

2021-08-28 20:59:06 字數 789 閱讀 7491

題目鏈結

題意:給出n(3≤n≤1000)n(3≤n≤1000)個數字,求max(si+sj)⨁skmax(si+sj)⨁sk,而且i,j,ki,j,k互不相等。

建乙個字典樹直接找,每次先刪除a[i],a[j]然後找出剩下的與a[i]+a[j]的最大異或和,然後然把a[i],a[j]插回去

#include #include #include using namespace std;

const int maxn = 1000 + 10;

const int maxnode = 100000 + 10;

int n;

int s[maxn];

int sz;

int ch[maxnode][2];

int val[maxnode];

void init()

//d=1表示插入,d=-1表示刪除

void update(int v, int d)

u = ch[u][c];

val[u] += d;

}}int match(int v)

else u = ch[u][c];

}return ans;

}int main()

int ans = (s[1] + s[2]) ^ s[3];

for(int i = 1; i < n; i++)

update(s[i], 1);

}printf("%d\n", ans);

}return 0;

}

Chip Factory (01字典樹 刪除操作)

chip factory hdu 5536 和xor sum hdu 4825 一樣都是01字典樹,不過多了乙個刪除操作,hdu4825只有插入操作,而hdu 5536有刪除操作 這裡講解一下刪除操作 定義乙個judge 陣列判斷每乙個節點是否存在即可 在插入的時候令judeg root 1 刪除的...

Trie樹(字典樹)

trie樹的核心思想是用空間換時間,通過在樹中儲存字串的公共字首,來達到加速檢索的目的。例如,對於一棵儲存由英文本母組成的字串的trie樹,如下圖 trie樹在實現的時候,可以用左兒子右兄弟的表示方法,也可以在每個節點處開設乙個陣列,如上圖的方法。trie樹的主要操作是插入 查詢,也可以進行刪除。插...

字典樹 Trie樹

字典樹 trie樹 顧名思義是一種樹形結構,屬於雜湊樹的一種。應用於統計 排序 查詢單詞 統計單詞出現的頻率等。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。字典樹的結構特點 根節點不代表任何字元。其他節點從當前節點回溯到根節點可以得到它代表的字串。...