莫队 mex

P4137 Rmq Problem / mex (三种解法: 权值线段树+询问离线 / 可持久化线段树 / 莫队+值域分块) 题目链接: P4137 Rmq Problem / mex 大致题意 给定一个长度为nnn的序列, 有mmm次询问操作. 每次询问[l,r][l, r][l,r]区间的mexmexmex是多少. 解题思路 解法一: 权值线段树 + 询问离线 我们考虑把所有的询问按照右端点rrr从小到大排序, 用权值线段树维护[1,r][1, r][1,r]区间中所有数值最后一次出现位置的最小值. 对于询问区间[l,r][l, r][l,r], 我们在树上进行二分, 如果当前值域左区间的最小出现位置要小于lll, 则访问左区 阅读详情

问题 G: mex
时间限制: 2 Sec 内存限制: 128 MB
题目描述
  有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。
输
  第一行n,m。
  第二行为n个数。
  从第三行开始,每行一个询问l,r。
输出
  一行一个数,表示每个询问的答案。
样例输入
5 5
2 1 0 2 1
3 3
2 3
2 4
1 2
3 5
样例输出
1
2
3
0
3
提示
数据规模和约定
  对于100%的数据:
  1<=n,m<=200000
  0<=ai<=109
  1<=l<=r<=n
  对于30%的数据:
  1<=n,m<=1000

第一次做到这种暴力套暴力的题。。莫队套分块。
最开始我想把答案在左右端点推移时就修改,发现太麻烦,反而更慢。
那么以数为块,把所有数加一,就排除了0的情况,最后减回来即可。而且数组不需要开太大,到n即可。因为如果出现>n的数一定不符合。
只是修改分块,记录下这个块有多少个数出现过,最后正大光明地找到第一个不全出现的块,枚举即可。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
#define N 201000
using namespace std;
struct Q{int l,r,id;}q[N];
int n,m,h,a[N],sum[N],kuai[N],ans[N];
int b[N],shu[1000];
inline bool cmp(Q a,Q b){return kuai[a.l]==kuai[b.l]?a.r<b.r:kuai[a.l]<kuai[b.l];}
int main()
{
    scanf("%d%d",&n,&m);h=sqrt(n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]),a[i]++,kuai[i]=(i-1)/h+1;
    for(int i=1;i<=m;i++)scanf("%d%d",&q[i].l,&q[i].r),q[i].id=i;
    sort(q+1,q+m+1,cmp);
    int l=0,r=0;
    for(int i=1;i<=m;i++)
    {
        for(;l<q[i].l;l++)
        {
            if(a[l]>=n)continue;
            sum[a[l]]--;
            if(sum[a[l]]==0)shu[kuai[a[l]]]--;
        }
        for(;l>q[i].l;l--)
        {
            if(a[l-1]>=n)continue;
            if(sum[a[l-1]]==0)shu[kuai[a[l-1]]]++;
            sum[a[l-1]]++;
        }
        for(;r<q[i].r;r++)
        {
            if(a[r+1]>=n)continue;
            if(sum[a[r+1]]==0)shu[kuai[a[r+1]]]++;
            sum[a[r+1]]++;

        }
        for(;r>q[i].r;r--)
        {
            if(a[r]>=n)continue;
            sum[a[r]]--;    
            if(sum[a[r]]==0)shu[kuai[a[r]]]--;
        }
        for(int k=1;k<=kuai[n];k++)
            if(shu[k]!=h)
            {
                for(int j=(k-1)*h+1;j<=min(n,k*h);j++)
                    if(!sum[j]){ans[q[i].id]=j;break;}
                break;
            }
    }
    for(int i=1;i<=m;i++)printf("%d\n",ans[i]-1);
}
开源CMDB与资产管理平台对比报告 本文对比分析了9款主流开源CMDB平台,从集成能力、功能完整性和多语言支持三个维度进行评测。重点介绍了VeCMDB、蓝鲸CMDB、WeCMDB和OpsAny等国产平台的特色:VeCMDB以动态模型和自动发现见长;蓝鲸CMDB适合超大规模企业级应用;WeCMDB专注金融级高并发场景;OpsAny提供一体化运维解决方案。针对不同规模企业给出选型建议:中小团队推荐Snipe-IT等轻量工具;大型企业建议蓝鲸或WeCMDB;需国产化适配的可选VeCMDB或OpsAny。文章还特别指出iTop、GLPI等适合ITIL 阅读详情

相关推荐

Claude Code教程(二) | Claude Code 核心信息与使用指南

Claude Code 核心信息与使用指南

qq_20236937的博客 2185

离线区间Mex问题的O(nlogn)算法

处理办法是,在离散化的过程中,加入每个数+1。我们的问题就变成了:对于当前的状态,所有数最后一次出现的位置中,比我所查询的左端点。区间Mex问题,简单说来,就是要查询区间最小未出现正整数(非负整数和正整数可以通过整体加减一相互转换,这里不作区分了)。大等于左子树的最小值,就去往左子树,否则去往右子树,直到到达叶子节点,这个节点代表的数就是我要找的最小未出现的数。现在查到的结果作为排名找到原来的数字,结果就是正确的。,维护每个数字最后一次出现的位置,通过线段树维护位置的最小值。,因此总的复杂度也是。

ararakitsukihi的博客 663

手把手教你学Simulink--双足机器人分数阶PID控制仿真

分数阶PID(Fractional-order PID, FOPID)控制是一种先进的控制策略,它扩展了传统的整数阶PID控制器的概念。FOPID控制器允许积分和微分项的阶次不是严格的整数,而是可以是任意实数,这为系统提供了更多的设计自由度,并可能带来更好的性能。在双足机器人控制中,分数阶PID控制可以用于改善机器人的平衡控制、轨迹跟踪等任务的性能。下面我们将详细介绍如何使用Simulink进行基于分数阶PID控制方法的双足机器人仿真研究。

MHD0815的博客 880

线段树/莫队-区间mex查询 NKOJ4254

题目 给你一个长度为n的数列,元素编号1到n,第i个元素值为Ai。现在有m个形如(L,R)的提问,你需要回答出区间[L,R]的mex值。即求出区间[L,R]中没有出现过的最小的非负整数。 详细见NKOJ4254 总结一下这道题的三种解法1.莫队分块,参考NewUser代码,非常暴力另两种需要分析一下提前计算Mi=mex(1,i),1<=i<=...

weixin_30507269的博客 334

K型热电偶负电压采集难题?3种运放电路设计方案对比(含Multisim仿真)

本文针对K型热电偶在低温测量中产生的负电压采集难题,详细对比了三种运放电路设计方案,包括双电源运放反相放大、单电源仪表放大器和差分放大电路,并结合Multisim仿真数据分析了各方案的性能差异。文章还提供了PCB布局和抗干扰设计的实战技巧,帮助工程师解决热电偶信号采集中的核心挑战。

postgres8guard的博客 1018

压电陶瓷传感器避坑指南:实测阻抗匹配对信号输出的影响(附示波器调试技巧)

本文深入探讨压电陶瓷传感器在工业振动监测中的阻抗匹配问题,通过等效电路模型和实测数据揭示负载阻抗对信号输出的关键影响。文章提供从元件选型到示波器调试的完整解决方案,特别强调100kΩ以上负载阻抗的重要性,并分享JFET缓冲器设计和PCB布局的实用技巧,帮助工程师避免信号失真和输出不稳定问题。

ooo22的博客 516

Frank Sinatra【树上莫队】【分块】【区间mex】

题目链接:https://vjudge.net/problem/Gym-100962F 题目大意:给你一棵树,边有边权,每次询问一条链上边权集合的mex。 用莫队加分块维护区间mex。 有一个很重要的点是,边权最大到1e9,但是显然大于 N 的权值对答案一定没有贡献,这样的话数组就可以开的下了。 #include <bits/stdc++.h> #define rep(...

蒟蒻 lxw的博客 562

FPGA实现串口升级及MultiBoot(十)串口升级SPI FLASH实现

采用软核进行串口升级的原因主要有以下几点:1、官方推荐:官方以前也推出了针对逻辑进行升级的程序《XAPP1081_QuickBoot》,但是从今年起(2024年)官方就停止更新相关例程了(详见下面截图),所以采用官方推荐的软核更新;2、简单并具有通用性:针对SPI或者BPI官方都有相关的IP,可应对市场上80%以上的FLASH,并且官方IP通用性极强,只需要修改几个参数就可以对不同厂家的芯片进行升级操作;

OpenFPGA的博客 1996

BZOJ 3585 Mex (莫队 + 分块)

Description   有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。    Input   第一行n,m。   第二行为n个数。   从第三行开始,每行一个询问l,r。 Output   一行一个数,表示每个询问的答案。    Examples Sample Input 5 5 2 1 0 2 1 3 3 2 3 2 4 1 2 3 5 Sample Output 1 2 3 0 3 Note 1≤n,m≤2000001 \leq n,m \leq

chr1stopher 252

【2022网易雷火】游戏研发笔试-AC代码及题目分享

3个小时,4道题目,雷火的题目不在于难,更在于对细节的把控和写大模拟的耐心,花了一个半小时,AC了3.85,直接交卷退了。第一题AC,第二题AC,第三题85%,第四题AC。下面分享一下大致的题意和对应的代码,就不多说了,最近很累(代码可能会有贴错的情况,如有望指正,感谢~)。 T1-小Y抽奖 题意 n行m列个奖励格子,每次抽奖消耗一个道具。每个格子奖励的数量有限且各不相司。每个格子被抽到一次,剩余的奖励数量-1。剩余的奖励数量为0时,则不会再抽到该格子。小Y抽了好多次,但一直没有抽到最想要的..

米莱虾 9266

ABAP 7.40 新语法介绍系列之六:使用 FILTER 关键字对 ABAP 内表进行过滤

笔者之前写过的关于 ABAP 740 新语法的文章:本文介绍另一个新的关键字:FILTER.FILTER 是 ABAP 740 中引入的一个关键字,用于简化数据操作,它能够将内部表(Internal Table)中的数据按特定的条件进行过滤,并生成一个新的内部表。FILTER 的引入旨在使代码更加现代化和高效,尤其是在面对大量数据需要过滤的情况下。传统上,开发人员可能需要使用 LOOP AT 结合条件判断来实现,但使用 FILTER 关键字后,代码显得更加简洁且易于维护。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1170

[BZOJ 3585] mex 【莫队+分块】

题目链接:BZOJ - 3585 题目分析 区间mex,即区间中没有出现的最小自然数。 那么我们使用一种莫队+分块的做法,使用莫队维护当前区间的每个数字的出现次数。 然后求mex用分块,将权值分块(显然mex 一定小于等于 n ,大于 n 的权值没有意义,可以直接忽略),每块大小 sqrt(n) 。 然后区间中的某个数的数量被减到0的时候就将它所在的块的种类计数减一,添加数的时候类...

weixin_30815427的博客 129

深度学习工具包 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")

洛谷P4137 Rmq Problem / mex 基础莫队

洛谷P4137 Rmq Problem / mex 标签 基础莫队 前言 我的csdn和博客园是同步的,欢迎来访danzh-博客园~ 很简单的莫队哦 简明题意 询问区间[L,R]中不存在的最小的数 思路 一看题,感觉莫队可以写。然后看看容不容易转移~ 首先remove,假设当前区间最小的不存在的数是ans。那么很显然的是,当前区间中一定存在[0,ans)中的所有数,ans这...

danzh 249

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

分块+莫队||BZOJ3339||BZOJ3585||Luogu4137||Rmq Problem / mex

题面:P4137Rmq Problem / mex 题解:先莫队排序一波,然后对权值进行分块,找出第一个没有填满的块,直接for一遍找答案。 除了bzoj3339以外,另外两道题Ai范围都是1e9。显然最劣情况下答案是N,所以大于N的Ai都直接无视就可以。 由于求的是最小的自然数,自然数包括0,所以要额外处理一下含有0的块。我这里是直接把0拖出来放在第0块了。 代码: ...

weixin_30617737的博客 80

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

P4137 Rmq Problem / mex (莫队)

题目 P4137 Rmq Problem / mex 解析 莫队算法维护mex, 往里添加数的时候,若添加的数等于\(mex\),\(mex\)就不能等于这个值了,就从这个数开始枚举找\(mex\);若不等于\(mex\),没有影响,因为它之前的所有数都出现过了,又出现一次不会怎样,放在后面又比\(mex\)大,肯定不是\(mex\). 取出数的时候,如果这个数出现的次数变为了\(0\...

223

[莫队] [分块] [BZOJ3585] mex

题目描述 Description 有一个长度为nn的数组{\{a1,a2,...,ana1,a2,...,an}\}。mm次询问,每次询问一个区间内最小没有出现过的自然数。 输入 Input 第一行nn,mm。 第二行为nn个数。 从第三行开始,每行一个询问ll,rr。 输出 Output 一行一个数,表示每个询问的答案。 样例输入 Sample Input 5 5

HeRaNO@HSAHRBNU 780

BZOJ 3339 && luogu4137 Rmq Problem / mex(莫队)

P4137 Rmq Problem / mex 题目描述 有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。 输入输出格式 输入格式: 第一行n,m。 第二行为n个数。 从第三行开始,每行一个询问l,r。 输出格式: 一行一个数,表示每个询问的答案。 输入输出样例 输入样例#1: 5 5 2 1 0 2 1 3 3 2 3 2 4 1 2 ...

weixin_30872789的博客 107

[BZOJ3585]mex(莫队+分块)

显然可以离线主席树,这里用莫队+分块做。分块的一个重要思想是实现修改与查询时间复杂度的均衡,这里莫队和分块互相弥补。 考虑暴力的分块做法,首先显然大于n的数直接忽略,于是将值域分成sqrt(n)份,每块记录块内的所有值是否在此当前区间内都已存在。 这样每次暴力从L到R分别放入这个表,最后从小到大询问每个块是否已满,若没有则在块内枚举第一个不存在的数。 注意到这样的总修改复杂度O(nq),查询...

weixin_30826761的博客 166

[BZOJ3585]-mex-莫队+分块

说在前面 Emmmm闲着没事切一道莫队,半小时码+调 感觉自己码力又增加了 题目 BZOJ3585传送门 题目大意 给出一个长为N的数字串,多次询问区间中没有出现过的自然数的最小值 输入输出格式 输入格式: 第一行两个整数N,M,表示数字串长度和询问个数 接下来N个整数表示数字串 再接下来M行,每行两个整数L,R表示一个询问 输出格式: 对于每个询问,输出

泉華子的OI足迹 592

BZOJ 3585: mex(分块+莫队)

传送门 解题思路   首先直接莫队是能被卡的,时间复杂度不对。就考虑按照值域先进行分块再进行莫队,然后统计答案的时候就暴力扫所有的块,直到一个块内元素不满,再暴力扫这个块就行了,时间复杂度O(msqrt(n)) 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath&g...

weixin_30748995的博客 103

#莫队,分块#洛谷 4137 JZOJ 3547 mex

题目 有一个长度为nnn的数组[a1,a2,...,an][a1,a2,...,an][a1,a2,...,an]。mmm次询问,每次询问一个区间内最小没有出现过的自然数。 分析 其实这道题出的不算很好,因为即使a≤109a\leq 10^9a≤109,也只是纸老虎,因为一共才不超过2×1052\times 10^52×105个数,嗯,所以其实并没有什么用,只要把超过nnn的数都变成n+1n+1...

lemondinosaur的博客 236

BZOJ 3585: mex【莫队+树状数组】

3585: mex 【题目描述】 传送门 【题解】 其实和BZOJ3339一模一样,当Ai>n时这个Ai对答案没有影响,这是肯定的,那么读入时处理一下就可以了。 代码如下 #pragma GCC optimize(2) #include<cmath> #include<cstdio> #include&l...

aiweiluan5095的博客 135
上一篇: 单调队列 bzoj3126 [Usaco2013 Open]Photo
下一篇: 线段树合并 [HNOI2012]永无乡
QTY_
博客等级 码龄9年 13粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值