首页 > 其他分享 >2024.4.11

2024.4.11

时间:2024-04-11 21:25:53浏览次数:24  
标签:11 2024.4 trie tree bound tag heap logn

2024.4.11 【虚怀若谷,戒骄戒躁。】

Thursday 三月初三


<theme = oi-"language">

这个好东西叫pb_ds!!!

#include<bits/extc++.h>
using namespace __gnu_cxx;
using namespace __gnu_pbds;

操作/数据结构 配对堆 二叉堆 左偏树 二项堆 斐波那契堆
代码 pairing_heap_tag binary_heap_tag L_Tree binomial_heap_tag thin_heap_tag
insert(插入) O(1) O(logn) O(logn) O(1) O(1)
find-min(找最小) O(1) O(1) O(1) O(logn) O(1)
delete-min(删最小) O(logn) O(logn) O(logn) O(logn) O(logn)
merge(合并) O(1) O(n) O(logn) O(logn) O(1)
decrease-key(减小一个元素 ) O(logn)~O(loglogn) O(logn) O(logn) O(logn) O(1)

除配对堆和斐波那契堆之外都是支持可持久化的

不过还是建议使用这两个。。。

typedef pair<int, int > PII;
priority_queue<PII, greater<PII>, pairing_heap_tag> q;
priority_queue<PII, greater<PII>, pairing_heap_tag>::point_iterator its[N];
int dis[N];
vector<PII> g[N];
  • push入堆
  • pop出堆
  • top堆顶
  • empty判空
  • size个数
  • clear清空

平衡树

rb_tree_tag 红黑树
splay_tree_tag 旋转树
ov_tree_tag 有序向量树

基本操作方法

insert(x) //插入x
erase(x)  //删除x

find_by_order(k)  //求平衡树内排名为k的值是多少
order_of_key(x)   //求x的排名
lower_bound(x)    //求大于等于x的最小值
upper_bound(x)    //求大于x的最小值

join(b)           //合并
split(v, b)       //分裂

食用

typedef pair<int, int> PII;
typedef tree<PII, null_type, less<PII>, rb_tree_tag, tree_order_statistics_node_update> Tree;
//这样用是因为pb_ds平衡树中不允许重复值的出现

哈希表

cc_hash_table 拉链法
gp_hash_table 探测法

食用

typedef gp_hash_table<string, int> hsmap;

显而易见,探测法会更快捷一点

哈希表是不支持 lower_bound 和 upper_bound 的


字典树

非常合理的食用方式

using Trie = __gnu_pbds::trie<string, null_type,
                              trie_string_access_traits<>,
                              pat_trie_tag,
                              trie_prefix_search_node_update>;

trie.insert(str);
trie.erase(str);
trie.join(another_trie);

// 遍历某一个前缀的所有字符串
pair<Trie::iterator, Trie::iterator> range = trie.prefix_range(prefix);
for(auto it = range.first; it != range.second; ++it)
	cout << *it << endl;

标签:11,2024.4,trie,tree,bound,tag,heap,logn
From: https://www.cnblogs.com/white-ice/p/18130035

相关文章

  • Windows 11 专业工作站版 是目前最强的系统吗?
    Windows11专业工作站版是微软针对专业人士和企业推出的操作系统,它在Windows11专业版的基础上增加了许多功能和性能增强,使其成为目前最强大的系统。性能强劲Windows11专业工作站版支持最多4个CPU和6TB内存,可轻松满足高性能工作负载的需求。它还支持ReFS文件系统......
  • 接口实现-删除文章(2024-4-11)
    代码量:500时间:5h博客量:1今天写了Android的前端页面,和页面功能的基本实现,剩下最难的接口调用方面了下面是跟的项目的一个简单接口//controller@DeleteMappingpublicResultdelete(Integerid){articleService.delete(id);returnResult.success();......
  • 2024-04-11 15:45
    今天终于是写上日记了,之前要么没时间要么就不想写,过完年后有一大片空白期,领导看我们很清闲,就给我们各自安排学习任务,我学习Flutter相关知识,但是学习了之后发现Flutter是个框架,里边的语言是dart语言,发现还的学习dart,还要整理学习文档,哦我的天之前的东西都没明白就又学习另外一种语......
  • 2024.04.11NOIP模拟赛 #1 记录
    2024.04.11NOIP模拟赛#1记录AT_arc160_e[ARC160E]MakeBiconnected给你一棵\(n\)个节点由无向边组成的二叉树,树上每个点有权值\(w_i\)。你可以把两个点之间连无向边,如果将\(u\)与\(v\)连边,代价是\(w_u+w_v\)。请给出一种连边方式,使得连边后,图中去掉任何一个点仍然......
  • 3 数字麦阵列声源定位模组 AR1105
    一,产品概述:AR1105是一款专用于音源定位寻向的模组。模组选用行业最新算法内核DSP芯片,并综合简单易用的原则而设计。AR1105模组需要搭配3颗间距都为10mm数字麦克风,利用每2颗数字麦克风组合的心形指向性,能够方便快速的辨识圆周6个方向的音源方向。对比常规的需要......
  • Windows 11 cmd终端命令提示符图标路径
    前言全局说明一、默认路径ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png二、实际路径C:\ProgramFiles\WindowsApps\Microsoft.WindowsTerminal_1.19.10573.0_x64__8wekyb3d8bbwe\ProfileIconsWindowsApps文件夹是隐藏文件夹直接打开C:\Pro......
  • 111
    *len为241bytes,241*8=1928bit*转换为二进制为:100100110000010001101111111110101001101100100000111110011110101100001111000001111000111011110010110110100110001100000100110011110001101100100100100101011011100101111100000111011000010011011100101000101000100000100......
  • 4 11
    跨域:解析后为: 总结:这里把request.js中的constbaseURL='http://localhost:8080';改为:constbaseURL='/api';并把vite.config.js加了: server:{  proxy:{   '/api':{//获取路径中包含了/api的请求     target:'http://localhost:8080�......
  • 211高校研究生招生信息网
    省份学校北京清华大学                 上海               ......
  • 数据可视化-ECharts Html项目实战(11)
    在之前的文章中,我们学习了如何在ECharts中特殊图表的双y图以及自定义形状词云图。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。数据可视化-EChartsHtml项目实战(10)-CSDN博客文章浏览阅读775次,点赞20次,收藏16次......