【模板】笛卡尔树
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); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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工具