【洛谷P5283】异或粽子【Trie】【堆】

微带天线理论学习笔记(1) 微带天线的概念是由Deschamps于1953年提出来的,它是在一块厚度远小于工作波长的介质基片的一面敷以金属辐射片、一面全部敷以金属薄层作接地板而成。辐射片可以根据不同的要求设计成各种形状。微带天线具有质量轻、体积小和易于制造等优点,广泛应用于个人无线通信中。 阅读详情

题目大意:

题目链接:https://www.luogu.org/problemnew/show/P5283
给出一个序列,找到 m m m个区间 [ l i , r i ] [l_i,r_i] [li​,ri​]使得这些区间的异或和最大。


思路 :

先做一遍前缀异或,这样问题就被转换成找 m m m对 l , r l,r l,r使得 ∑ l   x o r   r \sum l \ xor\ r ∑l xor r尽量大。
注意到 a [ l ]   x o r   a [ r ] = a [ r ]   x o r   a [ l ] a[l]\ xor\ a[r]=a[r]\ xor\ a[l] a[l] xor a[r]=a[r] xor a[l],所以如果选了 l , r l,r l,r,那么也会选一遍 r , l r,l r,l。这样的话我们可以将询问次数 × 2 \times 2 ×2,这样每连续的两组查询就是一组相同的 ( l , r ) ( r , l ) (l,r)(r,l) (l,r)(r,l)。最终答案除以2就行了。
我们维护一个堆,将每一个 i i i所对应的 a [ i ]   x o r   a [ j ] a[i]\ xor\ a[j] a[i] xor a[j]最大的 j j j扔到堆里面,每次询问取堆顶,将下一大的 a [ i ]   x o r   a [ j ] a[i]\ xor\ a[j] a[i] xor a[j]扔到堆中。
对于 x x x求 y y y使得 a [ x ]   x o r   a [ y ] a[x]\ xor\ a[y] a[x] xor a[y]为第 k k k大显然是可以用 T r i e Trie Trie维护的。每次利用权值来判断往子树的左右。
这样就可以不使用可持久化 T r i e Trie Trie来完成这道题了。时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)。


代码:

#include <queue>
#include <cstdio>
#include <string>
#include <iostream>
#define mp make_pair
using namespace std;
typedef long long ll;

const int N=500010,LG=35;
int n,m,tot=1,trie[N*LG][2],cnt[N],size[N*LG];
ll a[N],ans;
priority_queue<pair<ll,int> > q;

ll read()
{
    ll d=0;
    char ch=getchar();
    while (!isdigit(ch)) ch=getchar();
    while (isdigit(ch))
        d=(d<<3)+(d<<1)+(ll)ch-48LL,ch=getchar();
    return d;
}

void insert(ll x)
{
    int p=1;
    for (int i=LG;i>=0;i--)
    {
        int id=(x>>(ll)i)&1;
        if (!trie[p][id]) trie[p][id]=++tot;
        p=trie[p][id];
        size[p]++;
    }
}

ll find(ll x,int k)
{
    int p=1; 
    ll ans=0;
    for (int i=LG;i>=0;i--)
    {
        int id=(x>>(ll)i)&1;
        if (trie[p][id^1]&&size[trie[p][id^1]]>=k)
        {
            ans=(ans<<1)|1;
            p=trie[p][id^1];
        }
        else if (trie[p][id])
        {
            k-=size[trie[p][id^1]];
         	ans<<=1;
         	p=trie[p][id];
        }
    }
    return ans;
}

int main()
{
    scanf("%d%d",&n,&m);
    insert(0); cnt[0]=1;
    for (int i=1;i<=n;i++)
    {
        a[i]=read();
        a[i]^=a[i-1];
        insert(a[i]);
        cnt[i]=1;
    }
    for (int i=0;i<=n;i++)
        q.push(mp(find(a[i],1),i));
    m*=2;
    while (m--)
    {
    	if (!q.size()) break;
        ans+=q.top().first;
        int i=q.top().second;
        q.pop();
        cnt[i]++;
        if (cnt[i]<=n+1)
            q.push(mp(find(a[i],cnt[i]),i));
    }
    cout<<ans/2LL;
    return 0;
}
Cocos Creator Android打包:NDK版本选择与配置全攻略 在Android原生开发中,NDK(Native Development Kit)是编译C/C++代码的核心工具链,它决定了代码如何被编译为不同CPU架构(如ARMv7、ARM64)的动态库。其工作原理在于提供了一套完整的交叉编译环境,将高级语言代码转化为设备可执行的二进制指令。这一技术对于游戏引擎和性能敏感型应用至关重要,因为它能直接调用硬件资源,提升运行效率。在实际工程中,NDK版本必须与Android Gradle插件(AGP)版本、项目依赖的C++标准库精密匹配,否则会导致编译失败或运行时崩溃。特别 阅读详情

相关推荐

笔记本摄像头模拟监控推送RTSP流

FFmpeg软件:选择Windows builds by BtbN一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。选择Windows版本EasyDarwin开源流媒体服务器 支持Windows、Linux、macOS平台;支持RTSP推流分发(推模式转发);支持RTSP拉流分发(拉模式转发);VLC Media Player软件:选择Windows64bit支持众多与及文件格式,并支持DVD影音光盘,VCD影音光盘及各类协议。

IT_LittleBaby的博客 3872

洛谷 P5283 [十二省联考2019]异或粽子 字典树+堆

题目大意: https://www.luogu.org/problemnew/show/P5283 分析: 考虑对数列跑前缀异或和,然后相当于取两个数,把前kkk大的加起来。 可以像超级钢琴那道题一样,先把每个位置iii结尾的序列,找到一个j&lt;ij&lt;ij<i且ai xor aja_i\ xor\ a_jai​ xor aj​...

liangzihao1的博客 266

Xilinx Blockset Counter计数器模块使用及参数配置

本文详细介绍了Simulink中Xilinx Blockset库Counter模块的使用以及参数说明。

白码王子小张的博客 1093

洛谷P5283 & LOJ3048:[十二省联考2019]异或粽子——题解

https://www.luogu.org/problemnew/show/P5283 https://loj.ac/problem/3048 小粽是一个喜欢吃粽子的好孩子。今天她在家里自己做起了粽子。 小粽面前有 n种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为1到n。第ii种馅儿具有一个非负整数的属性值a_i。每种馅儿的数量都足够多,即小粽不会因为缺少原...

weixin_34124651的博客 216

如何玩转腾讯云轻量级服务器(新手向)

如何玩转腾讯云轻量级服务器(新手向) ​ 相信不少同学都想将自己的服务器部署到云服务器,让别人通过自己的域名就可以访问到自己的项目,而腾讯云轻量级服务器作为一个小型的应用,支持域名解析和可视化运维等。比较适合新手入门 ​ 本文服务器操作系统为Centos7 一. 购买以及基本配置 1.购买方式 ​ 本文主要面向新手,毕竟一般只有新手才会购买轻量级服务器。所以可以选择购买一年的来学习,以后再根据需要换,前提提示(轻量级服务器没有安全组的,开放端口直接开启防火墙里的即可) ​ 购买连接 购买完成后点击控制

qq_46160687的博客 1万+

【异常】OpenClaw报错 400 Total tokens of image and text exceed max message tokens. Request

OpenClaw报错400(Token超限)解决方案摘要 该报错因文本/图片总Token数超过模型限额导致,常见于多轮对话累积或单次请求过大。提供三级解决方案: 应急处理:输入"/new"指令清空会话历史,立即重置Token计数(90%问题可解决) 折中方案:保留历史对话前提下,通过精简当前输入、删除早期无关对话或拆分请求来压缩Token 专属处理:单次请求超限时,拆分长文本为2000字以内段落,或分批次上传降低分辨率图片 长期预防建议定期使用"/new"开启新会话,

奶爸的编程之路,也就一周冷个三天 1389

P5283 [十二省联考2019]异或粽子(主席树+最大异或和)

传送门 题意:从所有区间长度大于l小于r的区间段中,选择最大的k个区间异或合相加,输出答案 这道题与P2048 [NOI2010]超级钢琴的思想相似,如果没有做过可以先去尝试一下超级钢琴。 P2048 [NOI2010]超级钢琴:传送门 题解:由于异或一个相同的数,异或值为0所以对于前缀和来说,sum[r]XORsum[l-1]其实就是r到(l-1)的异或合,所以对于求的第几大值我们可...

qq_40584551的博客 304

CAN(2)-GD32

GD32中CAN的特征。

小柚子的博客 552

[十二省联考 2019] 异或粽子(可持久化字典树 + 二叉堆)

我恨以前超级钢琴的时候没有顺着爬过来做这道题!

1000

KVM — 与 QEMU 和 Libvirt 的关系

目录目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用前言如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会有所混淆, 傻傻的分不清. 尤其在看虚拟化技术文档时导致理解能力下降, 所以在开始学习虚拟化技术之前对这些概念有一个整体的认识和清晰的理解, 就显得很有必要了.KVMKVM(Kernel-basedVirtu

烟云的计算 5734

C# WinForm上位机:从串口调试工具到智能温控系统(Modbus RTU协议实战+完整源码)

做工业上位机开发时,我们常从串口调试工具入手:验证设备通信、查看数据帧,但面对实际场景(比如温控、电机控制),单纯的“收发数据”远远不够——需要解析工业标准协议(如Modbus RTU)、实时监控关键指标、实现自动化控制逻辑,还要有稳定的UI交互和数据记录。串口调试工具能收发数据,但看不懂Modbus RTU帧(地址、功能码、寄存器、CRC校验);想控制温控设备(如加热器、风扇),但不知道如何通过Modbus写入控制指令;手动调节目标温度时,温度波动大,需要PID算法实现精准控温,但不会集成;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1300

题解 luogu P5283 【[十二省联考2019]异或粽子】

题解 luogu P5283 【[十二省联考2019]异或粽子】 时间:2019.4.20 题目描述 小粽是一个喜欢吃粽子的好孩子。今天她在家里自己做起了粽子。 小粽面前有 \(n\) 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 \(1\) 到 \(n\) 。第 \(i\) 种馅儿具有一个非负整数的属性值 \(a_i\) 。每种馅儿的数量都足够多,即小粽不会因为缺少原料而做不出...

weixin_30361641的博客 286

基于STM32、HAL库的ADE7880ACPZ-RL电能计量芯片驱动程序设计

@retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)PA6 (MISO) <--> SDO (SPI数据输出)PB0 (CS) <--> /CS (片选,低有效)

corlin6688的博客 668

【十二省联考2019】【LOJ3048】【洛谷P5283】【BZOJ5495】异或粽子(01Trie)(堆)

LOJ传送门 洛谷传送门 BZOJ传送门 解析: 这个。。。其实怎么开心怎么玩就好了。 可以只建一个01Trie,然后查询前k∗2k*2k∗2的值就行了。 也可以只建一个,然后每个在自己的01Trie里面查询就行了。 还是挺休闲的。 代码: #include<bits/stdc++.h> #define ll long long #define re register #defin...

zxyoi_dreamer的博客(不定期诈尸) 317

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

洛谷.5283.[十二省联考2019]异或粽子(可持久化Trie 堆)

LOJ 洛谷 考场上都拍上了,8:50才发现我读错了题=-= 两天都读错题...醉惹... \(Solution1\) 先求一遍前缀异或和。 假设左端点是\(i\),那么我们要在\([i,n]\)中找一个\(sum_j\)使得它和\(sum_{i-1}\)异或最大。可以可持久化Trie。 对\(i\in[1,n]\)都求一遍它能得到的最大的异或值,扔到堆里。 每次从堆里找出值最大的,假设是\(...

weixin_30443813的博客 197

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

[十二省联考2019] 异或粽子 解题报告 (可持久化Trie+堆)

interlinkage: https://www.luogu.org/problemnew/show/P5283 description: solution: 显然有$O(n^2)$的做法,前缀和优化一下即可 正解做法是先确定一个右端点$r$,找到最优的$l$使得该区间的异或和最大,这个可以用可持久化$Trie$实现。不懂的话可以在我的博客里搜索 对每个点取出来后把答案放进一...

weixin_30938149的博客 104

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

P5283 [十二省联考2019]异或粽子

传送门 超级钢琴+可持久化$Trie$ 同样设三元组 $(o,l,r)$ 表示左端点为 $o$,右端点 $\in [l,r]$ 的区间的最大异或值,这个东西可以用可持久化 $Trie$ 来维护 一开始把所有 $(i,i,n)$ 扔到堆里,然后每次取出计算贡献,设取得最大异或值的位置为 $t$,然后再把 $(o,l,t-1)$ 和 $(o,t+1,r)$ 扔到堆里 具体还是看代码,很容易理解...

weixin_30294295的博客 77

#trie,堆#洛谷 5283 JZOJ 6106 BZOJ 5495 异或粽子

题目 分析 首先做异或前缀和,然后可以把此问题转换成求两两xor的前k大,那么每次若当前堆顶为第ttt大,把当前trie中的第t+1t+1t+1大插入堆中,在trie中类似求第kkk大的方法求出答案 代码 #include <cstdio> #include <cctype> #include <queue> #define rr register usin...

lemondinosaur的博客 230

【洛谷5283】[十二省联考2019] 异或粽子(可持久化Trie树+堆)

点此看题面 大致题意: 求前\(k\)大的区间异或和之和。 可持久化\(Trie\)树 之前做过一些可持久化\(Trie\)树题,结果说到底还是主席树。 终于,碰到一道真·可持久化\(Trie\)树的题目。 其实它的实现与主席树也是类似的。 大致思路 首先,我们统计一遍前缀异或和。 然后,我们根据前缀异或和建一棵可持久化\(Trie\)树。 接下来最核心的来了: 我们先求出以每个点为右端点所能得到...

weixin_30418341的博客 205

【题解】P5283 [十二省联考 2019] 异或粽子(字典树 Trie,优先队列)

【题解】P5283 [十二省联考 2019] 异或粽子 很好的优先队列+可持久化字典树练手题! 题目链接 P5283 [十二省联考 2019] 异或粽子 - 洛谷 题意概述 给定长度为 \(n\) 的序列 \(a_i\)。一个区间 \([l,r](1 \le l \le r \le n)\) 的价值为从 \(a_l\) 到 \(a_r\) 之间的每个数字进行的异或值。求这个序列中价值最大的 \(...

m0_46222454的博客 233

「洛谷5283」「LOJ3048」「十二省联考2019」异或粽子【可持久化01trie+优先队列】

题目链接 【洛谷传送门】 【LOJ传送门】 题目大意 让你求区间异或和前kkk大的异或和的和。 正解 这道题目是Blue sky大佬教我做的(祝贺bluesky大佬进HA省A队) 我们做过某一些题目,非常的相似。【超级钢琴】还有【最小函数值】还有【最大异或和】 感觉这一些题目拼在一起就变成了这一道水题。 首先我们需要预处理出,所有区间的异或最大值。 这个东西可以用可持久化01trie01trie0...

chhokmah的博客 514

【十二省2019】异或粽子

题面 https://www.luogu.org/problem/P5283 题解 #include<cstdio> #include<iostream> #include<cstring> #include<queue> #define N 500050 #define ri register int #define...

weixin_30362233的博客 74

「洛谷5283」「LOJ3048」「十二省联考2019」异或粽子【可持久化01trie+优先队列】...

题目链接 【洛谷传送门】 【LOJ传送门】 题目大意 让你求区间异或和前\(k\)大的异或和的和。 正解 这道题目是Blue sky大佬教我做的(祝贺bluesky大佬进HA省A队) 我们做过某一些题目,非常的相似。【超级钢琴】还有【最小函数值】还有【最大异或和】 感觉这一些题目拼在一起就变成了这一道水题。 首先我们需要预处理出,所有区间的异或最大值。 这个东西可以用可持久化\(01tr...

weixin_30767835的博客 131

非线性字符串数据结构串讲

Trie树又叫字典树,是非常显然的一种字符串数据结构。具体来说,我们如果手上有很多字符串,我们可以通过建一个Trie树来做一些简单的操作。其构建过程可以看一下图,非常显然,本质就是把字符串的相同部分压缩一下。比如我们对aaababacaaacabcbacc建一个Trie就长这样。

zwenqiyu的博客 244

洛谷-算法2-4-字符串2

给定一棵 n 个点的带权树,结点下标从 1 开始到 n。求树中所有异或路径的最大值。异或路径指树上两个结点之间唯一路径上的所有边权的异或值。

2302_81657110的博客 595

P5283 [十二省联考2019]异或粽子 【前缀异或+可持久化Trie+优先队列】

传送门 解题思路:区间的的异或和我们利用前缀异或来处理 这道题和超级钢琴十分类似,只是转化成立异或,我们可以利用Tire来解决问题,因为要多次询问区间第K大异或,我们利用可持久化Trie来维护前缀异或和。我们固定区间的右端点,把每个每个区间的异或最大值放于堆中去维护,每当我们取出一个数后,我们往堆里面放入下一个异或最大值。类似再Trie树上询问区间第K大异或。代码: #include&lt...

qq_42211531的博客 383
上一篇: 【洛谷P2048】超级钢琴【堆】【主席树】
下一篇: 【洛谷P4231】三步必杀【差分】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值