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