当前位置: 首页 > news >正文

P4735 最大异或和

点击查看代码
#include <bits/stdc++.h>
using namespace std;const int N = 600005; 
const int MAX_NODES = N * 25; 
//max_id,存经过某个节点的最大下标,用于下界区间的判断
int ch[MAX_NODES][2], max_id[MAX_NODES];
int root[N], s[N];//s[]数组就是前缀异或数组,就是异或的前缀和,我们要求的就是val*一段区间的s[k]的最大值
int tot = 0;// id: 当前插入的原数组下标,用于判断max_id
// val: 本次要插入的值
void insert(int id, int pre, int now, int val) {max_id[now] = id; // 给当前版本盖上时间戳,下界判断int p = now, q = pre;for (int i = 23; i >= 0; i--) {int c = (val >> i) & 1;// 无脑复制旧节点的左右儿子ch[p][0] = ch[q][0];ch[p][1] = ch[q][1];// 只有新数字走的那条路,需要裂变出新节点ch[p][c] = ++tot;// 指针往下走p = ch[p][c];q = ch[q][c];//  给沿途的新节点盖上最新的时间戳max_id[p] = id; }
}//在版本R的树中,寻找下界大于等于L的最大匹配
int query(int L, int R, int val) {int p = root[R]; // 控制上界Rint ans = 0;for (int i = 23; i >= 0; i--) {int c = (val >> i) & 1;//经典求异或和套路,优先走相反分支,这里加了最大数字下标>=L的判断if (max_id[ch[p][1 - c]] >= L) {ans |= (1 << i);p = ch[p][1 - c];} else {p = ch[p][c]; }}return ans;
}int main() {ios::sync_with_stdio(0); cin.tie(0);int n, m;cin>>n>>m;//空集初始化s[0] = 0;max_id[0] = -1; // 让所有不存在的空节点的max_id都为-1,这样下界判断永远为假root[0] = ++tot;insert(0, 0, root[0], 0);// 读入初始的 n 个数字,cur_n标记当前有多少数字,表示当前的历史版本推进到哪为了max_id的处理int cur_n = n;for (int i = 1; i <= n; i++) {int x; cin >> x;s[i] = s[i - 1] ^ x;//给每一次插入都给出一个根节点,方便版本控制root[i] = ++tot;//时间戳,旧大门,新大门,当前值insert(i, root[i - 1], root[i], s[i]);}// 查询和动态增加while (m--) {char op; cin >> op;if (op == 'A') {int x; cin >> x;cur_n++;s[cur_n] = s[cur_n - 1] ^ x;root[cur_n] = ++tot;insert(cur_n, root[cur_n - 1], root[cur_n], s[cur_n]);} else {int l, r, x;cin >> l >> r >> x;//根据公式查询int val = s[cur_n] ^ x;cout << query(l - 1, r - 1, val) << "\n";}}return 0;
}
http://www.jsqmd.com/news/438207/

相关文章:

  • 企业内部小型网络管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 2026年北京矿安认证代理机构推荐:矿安认证申请/证书/办理/标识卡专业服务商精选 - 品牌推荐官
  • 企业版单机修改密码、密码过期、修改密码有效期及密码认证方式变更(sm3与md5)的操作步骤
  • 周六福钻戒质量如何?试戴三款热门款,告诉你哪款最闪最值
  • 2026高职现代物流就业方向分析
  • OpenClaw 34个场景全拆解,从聊天AI到全自动数字员工,普通人也能搭建24小时不休息的AI团队
  • 行业内热门的新风系统厂家口碑推荐榜
  • 智慧城市、环保监控、自动驾驶清洁车 YOLO模型如何训练智慧道路街道垃圾检测数据集
  • 2026大专商务数据分析与应用毕业生起薪一般多少?
  • 口碑好的家政保洁培训机构哪家性价比高 - 工业品牌热点
  • Eyoucms网站数据字典 提示:查找数据表,请按Ctrl+F,输入表名
  • 2026智慧矿山服务商哪个好,迪迈科技口碑与实力兼具 - myqiye
  • 告别单打独斗:CrewAI 核心理念——像管理团队一样管理 AI
  • 北京口碑好的隐形车衣服务机构有推荐吗,价格贵吗? - 工业品网
  • 2026年3月大庆孕妇牙齿护理口腔机构最新推荐,聚焦孕妈专属安全诊疗 - 品牌鉴赏师
  • 2026年3月洛阳实体店短视频营销公司最新推荐,聚焦门店引流与到店转化 - 品牌鉴赏师
  • 2026年上海地区定制实木托盘,性价比高的品牌排名揭晓 - 工业推荐榜
  • 空白人全血血清血浆供应商推荐 品类齐全 - 品牌推荐大师
  • 绿色引擎:RTO技术如何重塑工业废气治理 ——兼论rto蓄热燃烧炉厂家推荐新格局 - 品牌评测官
  • 2026成都火锅评测:寻味地道,哪锅最能点燃味蕾?特色美食/美食/火锅/火锅店/川渝火锅/老火锅,火锅品牌排行榜 - 品牌推荐师
  • 忘记emlog的登录密码该怎么办?
  • 青少年近视防控眼镜选购要点,佳视路口碑好不好有保障吗 - mypinpai
  • 分析2026年聚乙烯板厂家排名,航发塑业凭借实力位居前列 - 工业设备
  • AI写论文工具精选!7款写论文的AI软件亲测,知网低查重率+低AIGC率! - 掌桥科研-AI论文写作
  • 分析知名的AI搜索排名专业公司价格,红典创意收费合理吗? - 工业品牌热点
  • 2026年3月外贸ERP系统公司推荐榜:甄选企业实测解析 - 品牌鉴赏师
  • 告别复杂 SQL!一款基于大模型和 RAG 的智能问数系统!
  • LeetCode经典题解:相交链表
  • 分析高档工装设计装修服务,北京、上海等地有哪些品牌值得推荐? - myqiye
  • 开箱即用!源码交付,国产工业物联网Web组态软件,支持Modbus、OPC、MQTT,拖拉拽搭建可视化大屏,内置海量模板,可二次开发