数据结构-Trie、并查集、堆
Trie通常有两种写法一种是竞赛常用的数组表示另一种问更直观的结构体表示数组acwing835void insert(string str){int curr 0;for (int i 0; i str.size(); i){if (!son[curr][str[i] - a])son[curr][str[i] - a] index; //一定是indexcurr son[curr][str[i] - a];}cnt[curr]; //索引是curr不是index}int query(string str){int curr 0;for (int i 0; i str.size(); i){if (!son[curr][str[i] - a])return 0;curr son[curr][str[i] - a];}return cnt[curr]; //索引是curr不是index}int main(){int n;cin n;while (n--){char ch;string str;cin ch str;if (ch I)insert(str);elsecout query(str) endl;}return 0;}结构体#define alpha 26typedef struct treeNode{struct treeNode* children[alpha];bool is_end;}treenode;treenode* createnode(){treenode* p new treenode;p-is_end false;for (int i 0; i alpha; i){p-children[i] NULL;}return p;}void insertnode(treenode* root, const string str){treenode* now root;for (int i 0; i str.size(); i){int index str[i] - a;if (now-children[index] NULL){now-children[index] createnode();}now now-children[index];}now-is_end true;}bool findnode(treenode* root, const string str){treenode* now root;for (int i 0; i str.size(); i){int index str[i] - a;if (now-children[index] NULL){return false;}now now-children[index];}return now-is_end;}int main(){treenode* root createnode();insertnode(root, apple);if (findnode(root, apple))cout true;elsecout false;return 0;}并查集例题acwing836const int N 100010;int set[N];int find(int num){if (set[num] 0)return num;return set[num] find(set[num]);}void merge(int num1, int num2){int f1 find(num1);int f2 find(num2);if (f1 f2)return;if (set[f1] set[f2])set[f2] f1;else if (set[f1] set[f2])set[f1] f2;else{set[f2]--; //注意一定是高度增加在先set[f1] f2;}}int main(){int n, m;cin n m;for (int i 0; i n; i){set[i] -1;}while (m--){string str;int a, b;cin str a b;if (str M)merge(a, b);elsecout ((find(a) find(b)) ? Yes : No) endl;}return 0;}堆堆排序acwing838const int N 100010;int heap[N];int sz 0;void Swap(int a, int b){swap(heap[a], heap[b]);}void up(int index){int curr index;while (curr / 2 heap[curr] heap[curr / 2]){Swap(curr, curr / 2);curr / 2;}}void insert(int num){heap[sz] num;up(sz);}void down(int index){int curr index;if (index * 2 sz heap[index * 2] heap[curr]) //注意index和curr的使用curr index * 2;if (index * 2 1 sz heap[index * 2 1] heap[curr])curr index * 2 1;if (curr index)return;Swap(curr, index);down(curr);}int main(){int n, m;cin n m;for (int i 0; i n; i){int num;cin num;insert(num);}for (int i 0; i m; i){cout heap[1] ;Swap(1, sz);sz--;down(1);}return 0;}模拟堆acwing839const int N 100010;int heap[N];int h[N];int p[N];int pos 0;int sz 0;void Swap(int index1, int index2){swap(h[p[index1]], h[p[index2]]); //三者的顺序需要注意swap(heap[index1], heap[index2]);swap(p[index1], p[index2]);}void up(int index){int curr index;while (curr / 2 heap[curr] heap[curr / 2]){Swap(curr, curr / 2);curr / 2;}}void down(int index){int curr index;if (index * 2 sz heap[index * 2] heap[curr])curr index * 2;if (index * 2 1 sz heap[index * 2 1] heap[curr])curr index * 2 1;if (curr index)return;Swap(curr, index);down(curr); //down在交换下面且需要down的索引是curr}void pop_min(){Swap(1, sz);sz--;down(1);}void pop(int index){int curr h[index];Swap(curr, sz);sz--;up(curr);down(curr);}void insert(int num){heap[sz] num;h[pos] sz;p[sz] pos;up(sz);}void change(int index, int num){heap[h[index]] num;up(h[index]);down(h[index]);}int main(){int n;cin n;while (n--){string str;cin str;if (str I){int num;cin num;insert(num);}else if (str PM)cout heap[1] endl;else if (str DM)pop_min();else if (str D){int index;cin index;pop(index);}else{int a, b;cin a b;change(a, b);}}return 0;}

相关新闻

证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景

证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景

证券行业行情、交易系统承载海量实时业务,系统卡顿、故障中断会直接影响客户交易体验,同时伴随严格监管核查要求。当下多数券商运维体系面临多重难题: 多套监控、日志、链路工具独立部署形成数据孤岛,每日海量告警淹没关键故障&am…

2026/8/1 22:48:14 阅读更多 →
Strawberry核心功能详解: reactivity系统与sb-mark指令完全指南

Strawberry核心功能详解: reactivity系统与sb-mark指令完全指南

Strawberry核心功能详解: reactivity系统与sb-mark指令完全指南 【免费下载链接】strawberry Zero-dependency, build-free framework for the artisanal web. 项目地址: https://gitcode.com/gh_mirrors/stra/strawberry Strawberry是一款零依赖、无需构建的…

2026/8/1 22:48:14 阅读更多 →
运维日志检索平台厂商哪家做得好?2026年选型不能只看“搜得快”

运维日志检索平台厂商哪家做得好?2026年选型不能只看“搜得快”

在微服务和云原生架构成为主流的今天,日志早已不是“出问题才看一眼”的辅助数据。一次业务故障,往往涉及数十个微服务、跨多个数据中心的调用链路,运维人员需要在海量日志中快速定位异常——这直接决定了故障恢复时间。但现实是,…

2026/8/1 22:48:14 阅读更多 →

最新新闻

【YOLOv11模型改进系列】15 YOLOv11的量化部署——INT8量化从原理到实战

【YOLOv11模型改进系列】15 YOLOv11的量化部署——INT8量化从原理到实战

15 YOLOv11的量化部署——INT8量化从原理到实战 上回咱们聊完剪枝+蒸馏这对黄金搭档,模型已经瘦身50%,跑在边缘设备上总算不卡了。但你猜怎么着?客户又提新需求了:“能不能再快一倍?我们想在树莓派上跑4路视频流。”好家伙,这哪是优化模型,这是要榨干每一滴算力啊。 别…

2026/8/2 0:18:57 阅读更多 →
Windows 10字体渲染优化指南:BetterClearTypeTuner让你的文字更清晰

Windows 10字体渲染优化指南:BetterClearTypeTuner让你的文字更清晰

Windows 10字体渲染优化指南:BetterClearTypeTuner让你的文字更清晰 【免费下载链接】BetterClearTypeTuner A better way to configure ClearType font smoothing on Windows 10. 项目地址: https://gitcode.com/gh_mirrors/be/BetterClearTypeTuner 你是否…

2026/8/2 0:18:57 阅读更多 →
C++笔记之闭包与C++中的Lambda表达式

C++笔记之闭包与C++中的Lambda表达式

C++笔记之闭包与C++中的Lambda表达式 code review 文章目录 C++笔记之闭包与C++中的Lambda表达式 1. 什么是闭包(Closure) 2. 为什么 Lambda 表达式是 C++ 实现和使用闭包的核心方式 2.1 捕获列表(Capture List)提供状态绑定能力 2.2 编译器自动生成仿函数(Functor) 2.3 …

2026/8/2 0:18:57 阅读更多 →
猫抓浏览器插件终极指南:三步搞定网页视频下载的完整解决方案

猫抓浏览器插件终极指南:三步搞定网页视频下载的完整解决方案

猫抓浏览器插件终极指南:三步搞定网页视频下载的完整解决方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch)浏览器资…

2026/8/2 0:18:57 阅读更多 →
为什么90%的乡村AI项目半年停摆?资深架构师手把手带你绕过4大隐形基建雷区

为什么90%的乡村AI项目半年停摆?资深架构师手把手带你绕过4大隐形基建雷区

更多请点击: https://intelliparadigm.com 第一章:为什么90%的乡村AI项目半年停摆?资深架构师手把手带你绕过4大隐形基建雷区 乡村AI落地难,从来不是模型精度不够,而是被四类“看不见的墙”拦在了村口——它们不写在需…

2026/8/2 0:18:57 阅读更多 →
揭秘Bad Apple病毒:用Windows窗口打造实时动画的艺术

揭秘Bad Apple病毒:用Windows窗口打造实时动画的艺术

揭秘Bad Apple病毒:用Windows窗口打造实时动画的艺术 【免费下载链接】bad_apple_virus Bad Apple using Windows windows 项目地址: https://gitcode.com/gh_mirrors/ba/bad_apple_virus 想象一下,你的Windows桌面突然"活"了过来——数…

2026/8/2 0:17:57 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →