【模板】笛卡尔树

【模板】笛卡尔树

Code

#include <cstdio>
#include <iostream>
#define re register
#define LL long long
using namespace std;
const int N = 1e7 + 5;
int n, a[N], stk[N], top, ls[N], rs[N];
inline void read(int &x)
{
x = 0; char ch = getchar();
while (!isdigit(ch)) ch = getchar();
while (isdigit(ch)) x = (x<<3) + (x<<1) + (ch^48), ch = getchar();
}
int main()
{
read(n);
for(re int i = 1, cur; i <= n; i++)
{
read(a[i]), cur = top;
while (a[stk[cur]] > a[i]) --cur;
if (cur) rs[stk[cur]] = i;
if (cur < top) ls[i] = stk[cur + 1];
stk[top = cur + 1] = i;
}
LL s1 = 0, s2 = 0;
for(re int i = 1; i <= n; i++) s1 ^= 1LL * i * (ls[i] + 1), s2 ^= 1LL * i * (rs[i] + 1);
printf("%lld %lld\n", s1, s2);
}
posted @   leiyuanze  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示