ACdream 1063 平衡树
写的很丑的字典树。听王大神的话 需要改进。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std; struct nn
{
int zero;
int one; }node[]; int findd[]; int main()
{
int sb;
scanf("%d", &sb);
while (sb--)
{
int n, i, j, ii, t, tot;
scanf("%d", &n);
char s[]; int ff; for (i = ; i<; i++)
{
node[i].zero = -;
node[i].one = -;
} int jiedian = ;
for (i = ; i<n; i++)
{
scanf("%s", s);
if (strcmp("insert", s) == )
{
tot = ;
scanf("%d", &t);
while (t)
{
findd[tot] = t % ;
t = t / ;
tot++;
}
while ()
{
if (tot == ) break;
findd[tot] = ;
tot++;
}
int bianli = ;
for (ii = ; ii >= ; ii--)
{
if (findd[ii] == )
{
if (node[bianli].zero == -)
{
node[bianli].zero = jiedian;
jiedian++;
}
bianli = node[bianli].zero;
}
else if (findd[ii] == )
{
if (node[bianli].one == -)
{
node[bianli].one = jiedian;
jiedian++;
}
bianli = node[bianli].one;
}
}
}
else if (strcmp("qmin", s) == )
{
scanf("%d", &t);
tot = ;
while (t)
{
findd[tot] = t % ;
t = t / ;
tot++;
}
while ()
{
if (tot == ) break;
findd[tot] = ;
tot++;
}
int bianli = ;
int anss = ;
for (ii = ; ii >= ; ii--)
{
if (findd[ii] == )
{
if (node[bianli].one != -)
{
anss = anss + ;
bianli = node[bianli].one;
}
else if (node[bianli].zero != -)
{
anss = anss + ( << ii);
bianli = node[bianli].zero;
}
}
else if (findd[ii] == )
{
if (node[bianli].zero != -)
{
anss = anss + ;
bianli = node[bianli].zero;
}
else if (node[bianli].one != -)
{
anss = anss + ( << ii);
bianli = node[bianli].one;
}
}
}
printf("%d\n", anss);
}
else if (strcmp("qmax", s) == )
{
scanf("%d", &t);
tot = ;
while (t)
{
findd[tot] = t % ;
t = t / ;
tot++;
}
while ()
{
if (tot == ) break;
findd[tot] = ;
tot++;
}
int bianli = ;
int anss = ;
for (ii = ; ii >= ; ii--)
{
if (findd[ii] == )
{
if (node[bianli].zero != -)
{
anss = anss + ( << ii);
bianli = node[bianli].zero;
}
else if (node[bianli].one != -)
{
anss = anss + ;
bianli = node[bianli].one;
}
}
else if (findd[ii] == )
{
if (node[bianli].one != -)
{
anss = anss + ( << ii);
bianli = node[bianli].one;
}
else if (node[bianli].zero != -)
{
anss = anss + ;
bianli = node[bianli].zero;
}
}
}
printf("%d\n", anss);
}
}
}
return ;
}
ACdream 1063 平衡树的更多相关文章
- ACdream 1063 字典树
ACdream 1063 字典树 平衡树 神奇的cxlove有一颗平衡树,其树之神奇无法用语言来描述 OrzOrz. 这棵树支持3种操作: 1.加入一个数到树中,维护平衡树的合法性: 2.给一个数X, ...
- hdu 4825 && acdream 1063 01字典树异或问题
题意: 给一个集合,多次询问,每次给一个k,问你集合和k异或结果最大的哪个 题解: 经典的01字典树问题,学习一哈. 把一个数字看成32位的01串,然后查找异或的时候不断的沿着^为1的路向下走即可 # ...
- Acdream 1738 世风日下的哗啦啦族I 树套树
世风日下的哗啦啦族I Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1738 Descri ...
- [BZOJ3223]Tyvj 1729 文艺平衡树
[BZOJ3223]Tyvj 1729 文艺平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区 ...
- [BZOJ3224]Tyvj 1728 普通平衡树
[BZOJ3224]Tyvj 1728 普通平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个) ...
- BZOJ3223: Tyvj 1729 文艺平衡树 [splay]
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3595 Solved: 2029[Submit][Sta ...
- [普通平衡树treap]【学习笔记】
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 9046 Solved: 3840[Submit][Sta ...
- BZOJ 3224: Tyvj 1728 普通平衡树
3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 9629 Solved: 4091[Submit][Sta ...
- BZOJ 3223: Tyvj 1729 文艺平衡树
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3628 Solved: 2052[Submit][Sta ...
随机推荐
- Java DB loadBalance 设计
Java DB loadBalance 设计 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {backgr ...
- unity 内置的CG结构解析
一.Cg顶点程序必须在结构中传递顶点数据.几种常用的顶点结构定义在文件UnityCG.cginc中.在大部分情况下仅仅使用它们就够了.结构如下: 1.appdata_base: 包含顶点位置,法线和一 ...
- java基础练习 7
public class Seventh { public static void main(String[] args){ double x=0,a=1,b=9; while(x!=a*a-100& ...
- Chrome浏览器加载CSS文件TTFB waiting超时的奇葩问题
今天本来调试 requirejs 加载js异常的问题,试了下Chrome浏览器,结果意外发现这个 CSS 加载异常的BUG,非常非常奇怪. 本地测试环境是 wi7x64 安装的 XAMPP 3.2.1 ...
- [UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)
前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Enti ...
- 【锋利的Jquery】读书笔记五
jquery表单 表格操作 表单从基本的得到和失去焦点表单验证 <script type="text/javascript"> $(function(){ $(&quo ...
- asp.net MVC漏油配置总结
URL构造 命名参数规范+匿名对象 routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}&qu ...
- android 实现与服务器的长链接 方式
http://blog.csdn.net/coffeeco/article/details/13276437 这边文章主要看服务端,使用tomcat7以上实现服务端的接收消息以及消息发送 http: ...
- 项目中处理android 6.0权限管理问题
android 6.0对于权限管理比较收紧,因此在适配android 6.0的时候就很有必要考虑一些权限管理的问题. 如果你没适配6.0的设备并且权限没给的话,就会出现类似如下的问题: java.la ...
- C语言温度
#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or a ...