ACdream1063——平衡树
来源:互联网 发布:阿里云主机和云服务器 编辑:程序博客网 时间:2024/05/21 19:33
1、题目大意:让你设计一种数据结构,支持插入一个数,和在这个结构里查询结构中的哪个数和给定的数的异或值最小
2、分析:这个怎么做呢,就是trie树,我们建立一个trie树,把树按01进制存进去,然后在查询的时候,
2、分析:这个怎么做呢,就是trie树,我们建立一个trie树,把树按01进制存进去,然后在查询的时候,
我们就贪心的在trie树的一直走
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;struct Trie{ int ch[1000000][3]; int num; inline void insert(int k){ int u = 0; for(int i = 30; i >= 0; i --){ int s = ((1 << i) & k); if(s){ if(!ch[u][1]){ num ++; ch[u][1] = num; } u = ch[u][1]; } else{ if(!ch[u][0]){ num ++; ch[u][0] = num; } u = ch[u][0]; } } return; } inline int qmin(int k){ int u = 0; int ret = 0; for(int i = 30; i >= 0; i --){ int s = ((1 << i) & k); if(s) { if(ch[u][1]){ u = ch[u][1]; ret += (1 << i); } else{ u = ch[u][0]; } } else{ if(ch[u][0]){ u = ch[u][0]; } else{ u = ch[u][1]; ret += (1 << i); } } } return ret; } inline int qmax(int k){ int u = 0; int ret = 0; for(int i = 30; i >= 0; i --){ int s = ((1 << i) & k); if(s) { if(ch[u][0]){ u = ch[u][0]; } else{ u = ch[u][1]; ret += (1 << i); } } else{ if(ch[u][1]){ u = ch[u][1]; ret += (1 << i); } else{ u = ch[u][0]; } } } return ret; }} wt;int main(){ int T; scanf("%d", &T); while(T --){ memset(wt.ch, 0, sizeof(wt.ch)); wt.num = 0; int n; scanf("%d", &n); char str[10]; int k; for(int i = 1; i <= n; i ++){ scanf("%s", str); scanf("%d", &k); if(str[2] == 's'){ wt.insert(k); } else if(str[2] == 'i'){ int ans = wt.qmin(k); printf("%d\n", ans^k); } else { int ans = wt.qmax(k); printf("%d\n", ans^k);; } } } return 0;}
0 0
- ACdream1063——平衡树
- ACdream1063-平衡树
- 平衡树——自平衡二叉树(Balanced Tree
- 平衡树——Treap
- 平衡搜索树—AVLTree
- 数据结构—平衡二叉树
- 数据结构—平衡二叉树
- 数据结构—平衡二叉树
- 数据结构—平衡二叉树
- 登峰造极之树——平衡树
- 【省选】算法总结——平衡树
- 平衡树练习——被虐记~~
- 3224普通平衡树——bzoj
- 数据结构例程——平衡二叉树
- 《剑指offer》——平衡二叉树
- 查找——平衡二叉树
- 验证算法——平衡二叉树
- 偷懒专用平衡树——Treap
- iOS开发之基础视图—— UIWebView
- 使用 Java 进行图像处理 - 取得图像上指定位置像素的 rgb 颜色分量
- oracle sql性能对比工具runstats
- 从数据看我国智能制造处于哪个阶段
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- ACdream1063——平衡树
- DM365的UBL源码分析和移植
- Spring MVC之@RequestMapping 详解
- 【EF系列】ModelFirst实体优先
- Matlab 简单的数据处理
- SDE连接,创建数据集,数据导入以及数据导出
- 增加模拟器
- 描述系统架构—部署图、组件图
- Git可视化工具SourceTree的使用