当前位置: 首页 > news >正文

洛谷P5854 【模板】笛卡尔树 题解 笛卡尔树模板题

题目链接:https://www.luogu.com.cn/problem/P5854

笛卡尔树 模板题。

示例程序:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e7 + 5;int n;struct Node {int s[2], p, pri;
} tr[maxn];void f_s(int p, int u, int k) {tr[p].s[k] = u;tr[u].p = p;
}void build_tree() {stack<int> stk;stk.push(0);for (int i = 1; i <= n; i++) {int pos = stk.top();while (!stk.empty() && tr[stk.top()].pri > tr[i].pri) {pos = tr[stk.top()].p;stk.pop();}f_s(i, tr[pos].s[1], 0);f_s(pos, i, 1);stk.push(i);}
}int main() {scanf("%d", &n);for (int i = 1; i <= n; i++)scanf("%d", &tr[i].pri);build_tree();long long res1 = 0, res2 = 0;for (int i = 1; i <= n; i++) {res1 ^= 1ll * i * (tr[i].s[0] + 1);res2 ^= 1ll * i * (tr[i].s[1] + 1);}printf("%lld %lld\n", res1, res2);return 0;
}
http://www.hskmm.com/?act=detail&tid=476

相关文章:

  • [Flink] Flink 经典场景:数据流输出到多个Sink
  • 都江堰操作系统
  • [OLAP/Doris] Doris 之表设计
  • cmov用法一例
  • 20250909 之所思 - 人生如梦
  • 认识人工智能-基础认知
  • Codeforces Round 1049 (Div. 2)(A~D)
  • 苹果im虚拟机协议群发系统,苹果imessage推信软件,苹果iMessage自动群发协议–持续更新中...
  • 【ChipIntelli 系列】SDK详解4——Makefile 设置 单SDK多工程文件夹实现方法
  • Codeforces Round 1049 (Div. 2)
  • 课前问题思考1
  • huggingface
  • 安全不是一个功能-而是一个地基
  • Python基础-27 match-case 使用教程
  • 从0到1实现Transformer模型-CS336作业1
  • 准备工作之结构体[基于郝斌课程]
  • 软工课程第一次作业
  • java学习起航喽
  • 初始化树莓派(Raspberry Pi)系统并以 ssh 连接教程(只需读卡器、手机开热点,无需显示器) - tsunchi
  • 从windows 自动进入BIOS
  • 软件工程第一次作业
  • Morpheus 审计报告分享:AAVE 项目 Pool 合约地址更新导致的组合性风险
  • Offer发放革命:Moka软件如何将平均入职转化率提升25%
  • U3D动作游戏开发读书笔记--2.1一些通用的预备知识
  • 常见的一些Dos命令
  • AUC和ROC
  • CF
  • Word中VBA提取人名所在的页码
  • Ubuntu 安装 VSCode
  • A