01 사전 트 리 요약
다른 성질: 1. 교환 율 2. 결합 율, 즉 (a ^ b) ^ c = a ^ (b ^ c)) 3. 자 반성, 즉 x ^ x = 0 4. x^0=x
그 중에서 가장 많이 활용 되 는 것 은 자 반성 이다.
다음 템 플 릿 문제 드 리 겠 습 니 다.
전송 문: 클릭 하여 링크 열기
제목: 몇 개의 수 를 정 하고 이 수의 차이 나 값 이 가장 큰 값 을 구하 세 요.
분석: 각 수 를 매 거 하여 X 로 한 다음 에 trie 에서 가능 한 한 X 의 바 이 너 리 와 반대 되 는 수 를 찾 아 답 을 계속 업데이트 합 니 다.
코드:
#include
#include
#include
using namespace std;
const int N = 1e5+5;
int n,cnt,a[N];
struct trie{
int nt[2];
int val;
}tr[32*N];
void build(int x) {
int rt=0;
for(int i=31;i>=0;i--) {
int c=(x>>i)&1;
if(!tr[rt].nt[c]) tr[rt].nt[c]=++cnt;
rt=tr[rt].nt[c];
}
tr[rt].val=x;
}
int query(int x) {
int rt=0;
for(int i=31;i>=0;i--) {
int c=(x>>i)&1;
if(tr[rt].nt[c^1]) rt=tr[rt].nt[c^1];
else rt=tr[rt].nt[c];
}
return tr[rt].val^x;
}
int main(){
ios::sync_with_stdio(0);
while(cin>>n) {
cnt=0;
memset(tr,0,sizeof(tr));
for(int i=0;i>a[i];
build(a[i]);
}
int mx=-1;
for(int i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
01 사전 트 리 요약예전 에는 사전 나무 가 별로 쓸모 가 없다 고 생각 했 지만 최근 에 관련 된 문 제 를 만 나 정리 하려 고 합 니 다.그 중 하 나 는 01 사전 트 리 문제 라 고 하 는데 xor (비트 연산) 를 해결 하 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.