Codeforces 282E Sausage Maximization Trie字典树
来源:互联网 发布:淘宝金酷娃玩具扫地车 编辑:程序博客网 时间:2024/06/05 03:27
题意:给n个数字组成的串, 可分成不相交的前缀和后缀,要求让该前缀和后缀内的所有数的xor值最大。
题解:我们可以先处理出到第i位的前缀xor值,和i位开始的后缀xor值,因为要求前缀后缀不相交,所以我们可以将对于第i位,可以将i位前的前缀都加入字典树,然后在字典树中去匹配后缀,匹配原则如下:
首先,字典树存的是前缀的二进制,查询的是后缀的二进制,数据范围最多32位,所以树32层,即我们可以将,前缀后缀都转化为32位二进制。
添加时,从最高位开始添加。查询时也一样。
对于每一位,不同的xor值为1,所以我们尽量找不同的,否则开辟新枝。
另外,求前缀后缀时,可和添加查询一起在一个for循环内求得,后缀利用的位运算是(a^b^c)^a=b^c。
代码
开始的版本: https://github.com/liusiyuxyfx/MyACM/blob/master/DataStructure/TrieTree/CF282E.cpp
优化修改过的:https://github.com/liusiyuxyfx/MyACM/blob/master/DataStructure/TrieTree/CF282E-2.cpp
0 0
- Codeforces 282E Sausage Maximization Trie字典树
- Sausage Maximization - CodeForces 282 E Trie树
- Codeforces 282E Sausage Maximization(字典树)
- Codeforces 282E Sausage Maximization (Trie)
- CodeForces Round #173 (282E) - Sausage Maximization 字典树
- Codeforces 282E Sausage Maximization【字典树+贪心】
- Codeforces 282E(Sausage Maximization)
- CodeForces 282E Sausage Maximization
- Codeforces 282E. Sausage Maximization【trie树(非指针版)】
- CF282 E Sausage Maximization[trie树]
- Codeforces Round #173 (Div. 2) E. Sausage Maximization —— Trie树 + 前缀和
- 【Codeforces 282E】Sausage Maximization 中文题意&题解&代码(C++)
- Codeforces-665E-Beautiful Subarrays Trie树(字典树)
- codeforces 665E (字典树)
- Codeforces 665E. Beautiful Subarrays (trie树)
- Codeforces 665E Beautiful Subarrays (Trie树)
- Educational Codeforces Round 12 E trie树
- codeforces 817E 字典树计数
- 腾讯公司数据平台高级架构师 郭玮:TDW在Hadoop上的实践分享
- NOIP模拟题 2016.11.1 [模拟] [贪心] [杂题]
- JSP笔记——EL表达式
- javascript中的正则表达式
- HDU5945 Fxx and game
- Codeforces 282E Sausage Maximization Trie字典树
- uci配置脚本
- 一些 简单的命令 怕自己忘
- JavaScript 的基础语法 使用
- ansible小结(二)ansible架构
- Linux命令行一:本机复制命令 cp
- 最讨厌的事儿居然是共享打印机
- OpenGL -- 透视图,模型变换
- ansible小结(三)Inventory与Patterns