首页 > 其他分享 >测试

测试

时间:2023-05-19 19:00:30浏览次数:30  
标签:return val int pos lson 测试 inline

enum {
Maxn = 1000005
};

struct FHQTreap {
int lson[Maxn], rson[Maxn], data[Maxn];
int rnd[Maxn], sze[Maxn], root, tot, seed;
FHQTreap(void) {
Ms(lson, 0), Ms(rson, 0), Ms(data, 0);
Ms(rnd, 0), Ms(sze, 0), root = tot = 0, seed = 1;
}

inline int _rand(void) { return seed *= 482711; }
inline void pushup(int pos) { sze[pos] = sze[lson[pos]] + sze[rson[pos]] + 1; }
inline void split(int pos, int val, int &x, int &y) {
if (!pos) { x = y = 0; return; }
if (data[pos] <= val) x = pos, split(rson[pos], val, rson[pos], y);
else y = pos, split(lson[pos], val, x, lson[pos]); pushup(pos);
}

inline int merge(int x, int y) {
if (!x || !y) return x + y;
if (rnd[x] < rnd[y]) return rson[x] = merge(rson[x], y), pushup(x), x;
else return lson[y] = merge(x, lson[y]), pushup(y), y;
}

inline void insert(int val) {
int x, y, pos = ++tot;
data[pos] = val, sze[pos] = 1, rnd[pos] = _rand();
split(root, val, x, y);
root = merge(merge(x, pos), y);
}

inline void remove(int val) {
int x, y, z;
split(root, val - 1, x, y);
split(y, val, y, z); if (!y) return;
y = merge(lson[y], rson[y]);
root = merge(x, merge(y, z));
}

inline int query_rank(int val) {
int x, y, ret;
split(root, val - 1, x, y);
ret = sze[x] + 1; root = merge(x, y);
return ret;
}

inline int select(int kth) {
int pos = root;
while (kth != sze[lson[pos]] + 1)
if (kth <= sze[lson[pos]]) pos = lson[pos];
else kth -= sze[lson[pos]] + 1, pos = rson[pos];
return data[pos];
}

inline int pred(int val) { return select(query_rank(val) - 1); }
inline int succ(int val) { return select(query_rank(val + 1)); }
} treap;

标签:return,val,int,pos,lson,测试,inline
From: https://www.cnblogs.com/Miya555/p/17416056.html

相关文章

  • 测试时间评估
    功能测试时间评估法则:开发时间的1/3~1/2。适用范围:1、不怎么复杂的功能,测试时间一般按照开发时间的1/3来评估。2、稍微复杂一点的功能,测试时间一般按照开发时间的1/2来评估。3、对于以上测试时间的评估,可依据实际项目中可能发生的测试风险,酌情再增加20%。比如,实际测试下......
  • golang 只读chan 测试
    packagemainimport( "fmt" "time")funcmyGoroutine(stopCh<-chanstruct{}){ //在协程中监听停止信号 for{ select{ case<-stopCh: //接收到停止信号,执行清理操作并退出 fmt.Println("cleanup") return default: //继续正常的协程逻......
  • Vulnhub之DriftingBlues 5靶机详细测试过程(得到root shell)
    DriftingBlues5靶机信息名称:DriftingBlues:5地址:https://download.vulnhub.com/driftingblues/driftingblues5_vh.ova识别IP地址(kali㉿kali)-[~/Desktop/Vulnhub/Driftingblues5]└─$sudonetdiscover-ieth1-r192.168.56.0/24Currentlyscanning:192.168.56......
  • 通过MQTT.fx接入和利时互联平台( mqtt协议测试 )
    1.1新建产品  1.2 模型定义 2.1注册设备 2.2 自动生成接入凭证   3.1打开MQTT.fx进行通讯配置   平台端设备也会先显示在线;  3.2MQTT.fx发布接口和数据格式  $oc/devices/ff67d1b8a5a815bd5249d15bde1afbcc_e17961e8c3df4......
  • 测试工程师都是怎么写测试用例的?
    ​很多人不知道写测试用例有什么用,而仅仅是像工具人一样,在每次提测之前,把测试用例照着需求文档抄一遍,仿佛像是走个过场。开发提测之后,就照着测试用例点点点,可能一天就走完用例了,开发代码写得真好,测试用例执行完毕都没有测出bug,然后美其名曰:测试完了,达到上线标准。测完之后,测试用......
  • 如何进行测试分析与设计-HTSM启发式测试策略模型 | 京东云技术团队
    测试,没有分析与设计就失去了灵魂;测试人员在编写用例之前,该如何进行测试分析与设计呢?上次在《测试的底层逻辑》中讲到了【输入输出测试模型】,还讲到了【2W+1H测试分析法】,但2W1H分析法是初步的分析方法,具体在测试中如何落地,还需要更细的设计。今天就给大家介绍一下由测试领域专家......
  • Qt+QtWebApp开发笔记(二):http服务器日志系统介绍、添加日志系统至Demo测试
    前言  上一篇使用QtWebApp的基于Qt的轻量级http服务器实现了一个静态网页返回的Demo,网页服务器很重要的就是日志,因为在服务器类上并没有直接返回,所以,本篇先把日志加上。 Demo  下载地址  链接:https://pan.baidu.com/s/1BPVRLS07qk-WPi-txERKbg?pwd=1234......
  • 测试远程端口是否连通
    telnetipportssh-v-pportipcurlip:portwgetip:portlinux检测端口命令linux测试端口命令(linux测试端口命令有哪些)......
  • 中括号的条件测试[ ]
    脚本中经常进行条件测试,用的最多的,都是中括号[]test和[]的昨天是一样注意的点:中括号,前后的空格必须。[-n"$filename"]注意,在条件测试中使用变量,必须添加双引号......
  • (转载)阿里蚂蚁2022GBA背后的测试技术发展
    阿里蚂蚁2022GBA背后的测试技术发展[编者注:这篇文章很长(8998个字),但作者用心良苦,基于44个GBABug的分析,几乎让我们获得了软件测试工程师一生职业生涯中所需的经验、找Bug所需的技能,值得慢慢阅读和体会,然后记录下对自己有用的要点。]前言这个文章也是欠了大半年了,现在想要出来还......