写的很丑的字典树。听王大神的话  需要改进。

#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 平衡树的更多相关文章

  1. ACdream 1063 字典树

    ACdream 1063 字典树 平衡树 神奇的cxlove有一颗平衡树,其树之神奇无法用语言来描述 OrzOrz. 这棵树支持3种操作: 1.加入一个数到树中,维护平衡树的合法性: 2.给一个数X, ...

  2. hdu 4825 && acdream 1063 01字典树异或问题

    题意: 给一个集合,多次询问,每次给一个k,问你集合和k异或结果最大的哪个 题解: 经典的01字典树问题,学习一哈. 把一个数字看成32位的01串,然后查找异或的时候不断的沿着^为1的路向下走即可 # ...

  3. Acdream 1738 世风日下的哗啦啦族I 树套树

    世风日下的哗啦啦族I Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1738 Descri ...

  4. [BZOJ3223]Tyvj 1729 文艺平衡树

    [BZOJ3223]Tyvj 1729 文艺平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区 ...

  5. [BZOJ3224]Tyvj 1728 普通平衡树

    [BZOJ3224]Tyvj 1728 普通平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个) ...

  6. BZOJ3223: Tyvj 1729 文艺平衡树 [splay]

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3595  Solved: 2029[Submit][Sta ...

  7. [普通平衡树treap]【学习笔记】

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 9046  Solved: 3840[Submit][Sta ...

  8. BZOJ 3224: Tyvj 1728 普通平衡树

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 9629  Solved: 4091[Submit][Sta ...

  9. BZOJ 3223: Tyvj 1729 文艺平衡树

    3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3628  Solved: 2052[Submit][Sta ...

随机推荐

  1. 五、RDD持久化

    Spark最重要的一个功能是它可以通过各种操作(operations)持久化(或者缓存)一个集合到内存中.当你持久化一个RDD的时候,每一个节点都将参与计算的所有分区数据存储到内存中,并且这些数据可以 ...

  2. scipy cluster聚类 ---Python3

    官方文档: https://docs.scipy.org/doc/scipy/reference/cluster.vq.html

  3. 关于C#继承运用的总结

    整体代码部分: 解决方案: 父类Person类: using System; using System.Collections.Generic; using System.Linq; using Sy ...

  4. CoreJavaE10V1P3.3 第3章 Java的基本编程结构-3.3 数据类型

    3.3 数据类型 这里所说的数据类型是指 Java的8中基本数据类型,是原生就存在的. 不同进制数的字面值表示方法 进制 字面值表示方法 例子 是否默认 JDK版本支持 2进制 0b或0B前缀(每4位 ...

  5. 问题记录2:TypeError: write() argument must be str, not bytes

    今天试了下用requests模块的get()方法来下载图片,写入文件的时候不能写入二进制,然后将打开方式改成二进制的就好了. 原因是,f.content的存储方式是二进制,而文件正常打开默认是字符串的 ...

  6. mysql vachar

    --本文在CSDN文章的基础加以补充 一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,va ...

  7. 将递归函数非递归化的一般方法(cont)

    本文通过模拟汇编里的stack机制,构建一个自己的stack,然后将上一篇blog末尾的递归函数void bst_walk(bst_node_t *root)非递归化. o libstack.h #i ...

  8. js判断数组里面的值是否相等。

    var zhi=[]; var zhiT=[]; //var arr=["a","b","a","a"]; var ar ...

  9. Action3D

    抖动效果-Shaky3D 波浪效果-Waves3D 翻转效果-FlipX3D 凸镜效果-Ripple3D 液体效果-Liquid 扭动效果-Twirl 破碎效果-ShatteredTiles3D 瓷砖 ...

  10. Redis--Latest Windows Version

    Redis Windows Ver https://github.com/MSOpenTech/redis/releases service-install.batredis-server.exe - ...