Treap仿set 模板
Treap仿set 模板
蓝书232
&代码:
#include <cstdio>
#include <bitset>
#include <iostream>
#include <set>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <map>
#include <queue>
#include <vector>
using namespace std;
#define INF 0x3f3f3f3f
#define ll long long
const int maxn = 1e3 + 7;
struct Node {
Node *ch[2];
int v, r;
bool operator <(const Node& A) const {
return r < A.r;
}
int cmp(int x) {
if(v == x) return -1;
return x < v ? 0 : 1;
}
};
void rotate(Node *&o, int d) {
Node *k = o->ch[d ^ 1];
o->ch[d ^ 1] = k->ch[d];
k->ch[d] = o;
o = k;
}
void insert(Node *&o, int x) {
if(o == NULL) {
o = new Node();
o->ch[0] = o->ch[1] = NULL;
o->v = x;
o->r = rand();
}
else {
int d = o->cmp(x);
insert(o->ch[d], x);
if(o->ch[d] > o) {
rotate(o, d ^ 1);
}
}
}
void remove(Node *&o, int x) {
int d = o->cmp(x);
if(d == -1) {
if(o->ch[0] == NULL) o = o->ch[1];
else if(o->ch[1] == NULL) o = o->ch[0];
else {
int d2 = o->ch[0] > o->ch[1] ? 1 : 0;
rotate(o, d2);
remove(o->ch[d2], x);
}
}
else {
remove(o->ch[d], x);
}
}
int find(Node *o, int x) {
while(o != NULL) {
int d = o->cmp(x);
if(d == -1) return 1;
o = o->ch[d];
}
return 0;
}
int main() {
freopen("E:1.in", "r", stdin);
Node *s = NULL;
for(int i = 1; i < 11; i++) {
if(!find(s, i))
insert(s, i);
}
for(int i = 1; i < 11; i++) {
if(!find(s, i))
insert(s, i);
}
for(int i = 0; i < 31; i++) {
printf("%d\n", find(s, i));
}
return 0;
}
Treap仿set 模板的更多相关文章
- treap完全版模板
这是我综合poj1442 3481 2352的treap操作 得到treap完全版模板.(经测AC) 结构体Tree { int key; //键值 int size; //该子树总节点个数 int ...
- jQuery入门第二天&&&正则表达式完结篇——仿smarty引擎的制作
hi 周一完全的不在状态...中午还去观战,没有睡觉的我,晚上的smarty不知道能不能做完,加油吧 1.jQuery ---过滤性选择器(二)--- --[attribute=value]属性选择器 ...
- jinja模板语法
模板 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强.并且更加容易理解和维护. 模板简单来说就是一个其中 ...
- Flask中的模板语言jinja2
jinja2介绍 jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用. jinja2的优点 jin ...
- jinja模板语言
模板 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强.并且更加容易理解和维护. 模板简单来说就是一个其中 ...
- 自定义Web框架与jinja2模板
web应用与web框架 web应用 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 import socket def handle_reque ...
- 【 Python】模块学习之Flask模板引擎:jinja2
原文链接:https://www.cnblogs.com/dachenzi/p/8242713.html 模板的概念 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛 ...
- Python 模板 Jinja2
Python 模板 Jinja2 模板 要了解Jinja2,就需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性更强.更加容易理解和维护 ...
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
随机推荐
- 买了第一台mac
今天,我的第一台mac到手了.是Macbook air 13.3寸屏的.正好这几天bestbuy大打折,索性入手了一台15年最低配的,一共只花了$750,包括税. 还是有点舍不得,而且用不习惯.
- docker容器添加微软雅黑字体
添加中文字体其实很简单,往容器里COPY一个ttf字体文件就生效了,不需要执行fc-cache. 基于debian 8的tomcat容器,Dockerfile: COPY msyh.ttf /usr/ ...
- 运营商挂时长神器,批量导入账号,导出账号状态,随机修改MAC地址
话不多说,直接上图 可批量导入账号,同时修改广域网口MAC地址 导出账号状态,包括在线时长,MAC,IP地址等等
- 抖音圈圈乐 系统搭建H5微信小游戏圈圈乐系统介绍
网红线下游戏抖音圈圈乐改造而来 一.搭建此系统需要准备如下资料: 1. 认证微信服务号 2. 微信支付商户号 3. 备案域名及云服务器 二.系统功能简介: 1. 游戏闯关 2. 每个商品闯关难度后台自 ...
- java数值比较
import org.junit.Test; public class NumberCompare { /** * 数值比较,以Float为例 */ @Test public void testNam ...
- HTTP Headers 信息
点开一个条目,可以查看请求的详细信息: General —— 通用信息 Request URL:请求的URL Request Method:请求的方法 Status Code:响应状态 ...
- Apache kylin的基础环境
一.Apache kylin的基础环境 由于Apache kylin上的OLAP(wiki:OLAP)是构建在hadoop生态环境上的,所以hadoop环境的稳定性和健壮性对kylin的稳定运行至关重 ...
- 发送消息-配置app_id
$user_id = $curr_workitem["creater_id"]; $user_name = g('dao_user') -> get_by_id($user_ ...
- 在node环境使用axios发送文件
yarn add form-data (async () => { const l = console.log; const axios = require("axios") ...
- java获取当前网站的IP地址
package ip; import java.net.InetAddress; import java.net.UnknownHostException; /** * * @author * */ ...