Codeforces 665E Beautiful Subarrays【01trie树】

博客详细介绍了如何使用01trie树解决Codeforces中一道名为Beautiful Subarrays的问题。通过建立前缀异或值与K的关系,分析在什么情况下区间异或值大于K,并给出具体实现代码。
摘要由CSDN通过智能技术生成

题目链接:

http://codeforces.com/contest/665/problem/E

题意:

求异或值大于给定K的区间个数。

分析:

首先我们可以得到区间前缀的异或值。
这样我们将这个前缀M和K一起走trie树,如果该位K的值为0,那么无论怎么走最后得到的答案都不会比K小,所以直接加上另一边的子树大小,然后继续沿着当前边走。如果该位K的值为1,那么想要大于等于K必须沿着另一边贪心的走。

代码:

#include<cstdio>
#include<iostream>
using namespace std;
const int maxn = 1000000 << 5, maxm = 1e6 + 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值