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

Trie

Trie查询与插入

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;struct Trie{int c[26];//孩子int co;//对应字母为结尾的计数器
} T[100100];int idx = 0;void init(){T[idx].co = 0;for (int i = 0; i < 26; i ++ ){T[idx].c[i]=-1;}idx++;//初始化头节点
}void insert(string s){int p = 0;int now = 0;for(char x:s){now = x -'a';if(T[p].c[now]==-1){//如果不存在for (int i = 0; i < 26; i ++ ){T[idx].c[i]=-1;}//初始化新的节点  T[idx].co = 0;//清零新的coT[p].c[now] = idx++;//记录新节点}p = T[p].c[now];//移动到下一个节点}T[p].co++;//记录增加的
}void query(string s){int p = 0;int now = 0;for(char x:s){now = x - 'a';p = T[p].c[now];if(p==-1){cout << 0 << endl;return;};}cout << T[p].co << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int n;char op;string work;cin >> n;init();while (n -- ){cin >> op >> work;if(op=='I'){insert(work);}else if(op=='Q'){query(work);}}return 0;
}

最大xor对

这个和上一个类似,只不过先是插入,然后查找。查找是查找1-bit比如我是0就找1,这样保证最大化xor。然后需要一些位运算,(x>>i)&1就是获取第i位,1>>i就是加上i是1其他是0的。然后获取最大值即可。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;struct Trie{int c[2];//0或者1
} T[4000000];//这个要很大不然会错误int idx = 0;
int res = 0;void init(){T[idx].c[0] = T[idx].c[1] = -1;idx++;
}void insert(int x){int now = 0;int p = 0;for (int i = 30; i >= 0; i -- ){now = (x >> i) & 1;//提取对应的位的bit//先计入if(T[p].c[now]==-1){T[idx].c[0] = T[idx].c[1] = -1;T[p].c[now] = idx++;}p = T[p].c[now];}
}void query(int x){int now = 0;int h = 0;int p =0;int tres = 0;for (int i = 30; i >= 0; i-- ){now = (x >> i) & 1;//提取对应的位的bit//获得期望的另一个h = 1-now;if(T[p].c[h]==-1){p = T[p].c[now];}else{p = T[p].c[h];tres += 1 << i;}}   res = max(res,tres);
}int main()
{ios::sync_with_stdio(false);cin.tie(0);init();int n;cin >> n;int x;for (int i = 0; i < n; i ++ ){cin >> x;insert(x);//插入query(x);//查找最大异或}cout << res << endl;return 0;
}
http://www.jsqmd.com/news/558387/

相关文章:

  • DeepSeek-OCR-2行业报告:OCR技术发展趋势分析
  • ESP32+MicroPython实战:手把手教你玩转ssd1306 OLED屏(附完整代码)
  • USRP系列(一):软件定义无线电(SDR)入门与核心概念解析
  • 结合AI改写技术与五个技巧,快速优化论文查重率至合格范围
  • Qwen3-TTS开源TTS模型效果展示:97ms端到端延迟下的实时对话体验
  • 实时手机检测-通用:5分钟快速部署,小白也能轻松上手
  • 别再只盯着模型了!黄仁勋说的‘MLOps是炼丹’到底该怎么理解?一份给AI工程团队的实践指南
  • NepCTF2023的wpdockerfile复现方法
  • 二分图最大匹配
  • 【架构革新】BooruDatasetTagManager:重新定义企业级AI数据治理范式
  • 小程序开发实战:太阳码与二维码生成技术解析
  • Java 25正式支持ZGC 2.0仅剩72小时!你还没掌握这8个颠覆性调优参数?
  • 利用AI改写工具,五个策略帮助论文查重率快速降至合规标准
  • spfa
  • 避坑指南:PySide6子窗口传参时容易遇到的5个典型错误(含解决方案)
  • bge-large-zh-v1.5效果展示:中文语义相似度计算案例
  • 3个高效技巧:用RePKG轻松解锁Wallpaper Engine壁纸资源
  • HCIA-AI V3.5华为认证人工智能工程师备考指南:章节重点解析与实战模拟
  • 保姆级教程:在PVE上5分钟搞定一个Ubuntu LXC容器,并配置好Docker环境
  • 互联网产品创新:基于Qwen3-ASR-0.6B的在线教育实时字幕解决方案
  • Z-Image Atelier 智能体(Agent)应用:自主完成多轮图像修改与迭代
  • 阿里云服务器上,用Docker Compose一键部署若依微服务Plus(Ruoyi-Cloud-Plus)的保姆级教程
  • 3分钟快速上手:ComfyUI-WanVideoWrapper视频生成AI终极指南
  • 定积分换元法的核心原则与实战避坑指南
  • YOLOFuse效果实测:低光、烟雾环境下,多模态检测精度提升明显
  • 医疗器械生产许可证厂房建设咨询品牌推荐:新版GMP医疗器械生产许可证代办/无菌医疗器械生产许可证代办/有源器械医疗器械注册/选择指南 - 优质品牌商家
  • PyTorch 2.7镜像开箱即用:小白也能秒懂GPU加速配置
  • 避坑指南:ROS2 Action服务端编译报错undefined reference to ServerBase的5种修复方法
  • YOLOv11赋能卡证检测矫正:新一代目标检测模型实战应用
  • Scarab模组管理器终极指南:空洞骑士模组安装一键搞定