Codeforces Round #340 (Div. 2) E - XOR and Favorite Number (莫队算法)

别再只调电压了!深入理解数控电源的CC/CV模式与双闭环PID控制(以BUCK电路为例) 本文深入解析数控电源的CC/CV模式与双闭环PID控制技术,以BUCK电路为例,探讨如何通过双闭环控制优化负载突变响应和模式切换稳定性。文章详细介绍了电压环与电流环的协同工作原理、PID参数整定技巧及工程实践中的非线性补偿方法,帮助工程师提升电源设计的智能控制能力。 阅读详情

题意:

给你n个数,m个查询,每个查询问你一个区间里面,连续的数的异或值恰好为k的区间有多少个

思路:

莫队算法
如果我处理出前缀的异或,那么我ai^aj(i>j)的值,就是 aj+1 ^aj+1^aj+3...ai的值。当我修改区间的时间,多一个值ai,那么就相当于之前区间的答案加上cnt[k^ai],其他的也相似,但是边界需要多思考,当L变化的时候,相比起正常时候的莫队,应当多减一,理由就是一开始说的,我两个前缀异或后的值是j+1到i的。
一个细节就是k是可以为0的,以及ai也可以等于k,所以在add和del的操作顺序十分重要,并且要让一开始的cnt[0]应当是1。

错误及反思:

多个异或可能会比最大的还大,甚至爆int
记录某个数字出现次数的时候,别用map,会T到怀疑人生。
在改变区间的del和add分开写会快很多,反正分开是655ms,写一起951ms,目测是因为多了一个if会多走一次曼哈顿距离和。

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int pos[maxn];
int n,m;
long long k,ans[maxn],now=0,M[1<<20];
int val[maxn];
struct query{
    int l,r,id;
}Q[maxn];
bool cmp(query a,query b)
{
    if(pos[a.l]==pos[b.l])
        return a.r<b.r;
    return a.l<b.l;
}
void add(int x)
{
    now+=M[val[x]^k];
    M[val[x]]++;
}
void del(int x)
{
    M[val[x]]--;
    now-=M[val[x]^k];
}
int main(){
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=n;i++){
        long long temp;
        scanf("%I64d",&temp);
        val[i]=val[i-1]^temp;
    }
    int block=sqrt(n);
    for(int i=1;i<=n;i++)
        pos[i]=i/block;

    for(int i=0;i<m;i++)
    {
        scanf("%d%d",&Q[i].l,&Q[i].r);
        Q[i].id=i;
    }

    sort(Q,Q+m,cmp);
    M[0]=1;
    for(int i=0,L=1,R=0;i<m;i++)
    {
        for(;R<Q[i].r;R++)
            add(R+1);
        for(;R>Q[i].r;R--)
            del(R);
        for(;L<Q[i].l;L++)
            del(L-1);
        for(;L>Q[i].l;L--)
            add(L-2);
        ans[Q[i].id]=now;
    }
    for(int i=0;i<m;i++)
        printf("%I64d\n",ans[i]);
}
Office系列完全干净卸载工具合集(最全) 使用 Microsoft Fix it 卸载 Microsoft Office 套件 一、Windows 7、Windows Vista或Windows XP下卸载Office 1.MicrosoftEasyFix50416 工具用来卸载office 2003 MicrosoftEasyFix50416_Office2003.msi 2.MicrosoftEasyFix50154 工具用来卸载office 2007 MicrosoftEasyFix50154_Office2007.msi 3.Microso 阅读详情

相关推荐

2024.6.10丨基于DIAMOND与VFDB数据库的致病菌毒力因子高效注释指南

本文详细介绍了基于DIAMOND与VFDB数据库的致病菌毒力因子高效注释方法,涵盖工具安装、参数优化、数据库选择及实战案例解析。通过DIAMOND的快速比对和VFDB的全面毒力因子数据,显著提升微生物基因组研究效率,适用于临床检测、食品安全监测等多个场景。

weixin_33712987的博客 376

CodeForces - 1000F One Occurrence(莫队+分块 | 线段树 | 主席树)

F. One Occurrence time limit per test 3 seconds memory limit per test 768 megabytes input standard input output standard output You are given an array aa consisting of nn integers, and qq que...

LP_Cong 861

STM32F103C8T6键盘DIY全攻略:从电路设计到固件烧录(附避坑指南)

本文详细介绍了基于STM32F103C8T6微控制器的DIY键盘制作全流程,涵盖硬件电路设计、按键矩阵实现、USB HID通信及固件烧录等关键步骤。特别针对常见问题提供避坑指南,帮助开发者高效完成从电路设计到功能实现的完整过程,打造个性化瀚文键盘。

soda5的博客 770

Codeforces 633H. Fibonacci-ish II (Mo's Algorithm(莫队算法) + 线段树 + 离散化)

题意: 给定一个长度最大为3万的序列,和最多3万个询问,每个询问问某区间[L,R]里的数,去掉重复然后排序之后,依次乘上斐波那契数列然后求和,结果对m取余的值。 区间优化用Mo's Algorithm(莫队算法),莫队算法的Add和Remove中使用线段树,所以整体复杂度是O(n*sqrt(n)*log2(n)). 这题一路TLE,从TLE26到TLE27到TLE29到TLE35都快绝

岩之痕 3136

本地部署大模型框架 LMStudio和Ollama+WebUI对比

之前我们的辣妈系列文章介绍了很多如何使用Ollama框架+OpenWebUI做很多大模型框架下相关的事情。之后我们也尝试了LMStudio这样一体化的工具。本文介绍下LMStudio 和 Ollama+Web UI 各有优劣,具体选择取决于你的需求。

ms44的专栏 4028

基于Android13的系统启动流程分析(三)之FirstStageMain阶段

init进程是Android系统中用户空间的第一个进程,作为第一个进程,它被赋予了很多极其重要的工作职责,比如创建zygote(孵化器)和属性服务等。init进程是由多个源文件共同组成的,这些文件位于源码目录system/core/init1. Bootloader 引导当按下设备电源键时,最先运行的就是 bootloader(固化在ROM的程序),bootloader 的主要作用就是硬件设备(如 CPU、flash、内存)的初始化并加载到RAM,通过建立内存空间映射,为装载 Linux 内核做好准备,。

q1210249579的博客 5496

Codeforces 765F Souvenirs - 莫队算法 - 链表 - 线段树

题目传送门   神速的列车   光速的列车   声速的列车 题目大意   给定一个长度为$n$的序列,$m$次询问区间$[l, r]$内相差最小的两个数的差的绝对值。 Solution 1 Mo's Algorithm & Linked List   不会。。果断莫队(orz mcfx,一讲“值域”链表就明白可以干什么了)。   当插入一个数的时候,如...

adx33526的博客 298

Lammps实现结冰匀相成核

Lammps实现结冰匀相成核

Rockyoung 3843

Problem - 220B - Codeforces(莫队)

Problem - 220B - Codeforces 题目大意:给定长度为n的数组,m次查询,求每次查询的区间中,aia_iai​=num[ai]num[a_i]num[ai​]的个数. 解题思路:n的范围是1e5,基本就确定了这是一个莫队的题. 莫队用来处理离线问题,通过把长度为nnn的数组分块成n\sqrt{n}n​块来进行处理,处理之前进行一个排序,对于起点,用所在块来决定先后顺序,对于处在相同块的,用n来决定先后顺序. 复杂度的证明:对于右指针的每一块而言,它一定是单调递增的去移动,那么复杂

qq_53629286的博客 342

44、单级静态电流消耗最小化方法及功率优化比较器设计

本文探讨了单级静态电流消耗最小化方法及功率优化的多米诺逻辑比较器设计。通过分析类“AB”输入CMOS差分对电路,提出利用补偿电流源实现高低电流模式切换,提升运算放大器性能;结合VTCMOS与时钟门控技术,在90nm CMOS中设计低功耗比较器,并采用多米诺逻辑提高速度与能效。通过对比传统与改进型多米诺逻辑的静态功耗、动态功耗、延迟和PDP,验证了所提方案在高性能与低功耗方面的优势,适用于便携式设备等对能效要求严苛的应用场景。

pp12345的博客 121

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5553

莫队算法

莫队算法,是由莫涛队长提出的,能够以玄学的复杂度处理区间查询类的问题。也可以说,他使用来解决线段树等数据结构不好维护的区间查询问题。

christ_lrs的博客 3807

信号处理算法:离散余弦变换(DCT)_(1).离散余弦变换(DCT)概述

离散余弦变换的数学定义如下:对于一个长度为NNN的离散信号xnx(n)xn,其DCT变换后的系数XkX(k)XkXk∑n0N−1xncos⁡πNn12kk012N−1Xkn0∑N−1​xncosNπ​n21​kk012N−1其中,kkk是频率指数,nnn是时间或空间索引。离散余弦变换(DCT)是一种强大的信号处理技术,广泛应用于图像压缩、音频处理、数据压缩等领域。

2401_87715305的博客 1554

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number —— 莫队算法

题目链接:http://codeforces.com/problemset/problem/617/E E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input standard input ou

A man can be destroyed, but not defeated. 408

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number【莫队算法】

E. XOR and Favorite Number time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard output Bob has a favorite number k and ai of length n. Now he asks you

Irish_Moonshine的博客 347

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number 莫队算法

链接: http://codeforces.com/contest/617/problem/E 题意: 给出一个长度为n的数组和一个k,每次询问一个区间,问你有多少子区间的异或和为k 题解: 莫队算法,先算出前缀和(异或和),然后就是暴力的莫队了 代码: 31 struct node { 32 int l, r, id; 33 }q[MAXN]; 34 ...

花海 175

WINCC7.3破解文件

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

Codeforces Round #340 (Div. 2)E-XOR and Favorite Number(莫队算法)

B - XOR and Favorite Number Time Limit:4000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Description Bob has a favorite number k and ai of length n. No

梧桐下的四叶草 524

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number(莫队算法)

题意: 给定N≤105个数的序列,Q≤105次询问,给定一个数K≤106给定N\le 10^5个数的序列, Q\le 10^5次询问, 给定一个数K\le 10^6 询问[L,R]中,满足i≤j,i,j∈[L,R],且ai⊕ai+1⊕⋯⊕aj=K,(i,j)对有多少个询问[L,R] 中, 满足i\le j,i,j\in[L,R], 且a_i\oplus a_{i+1}\oplus\cdot

TaoSama's Microcosm 489

Codeforces Round #340 (Div. 2)E. XOR and Favorite Number(莫队算法)

E. XOR and Favorite Number time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard output Bob has a favorite number k and ai of length n. Now he asks you

妍恐龙的博客....^~^眼熟我 604

Codeforces Round #340 (Div. 2) E XOR and Favorite Number(莫队算法)

卿学姐在bilibili上讲的例题 https://www.bilibili.com/video/av4291097/?from=search&seid=3446180275379041786#include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 1<<20;LL pos[MAXN];

梦幻的蔷薇色 398

Codeforces Round #340 (Div. 2) E. XOR and Favorite Number 莫队算法

E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output Bob has a favorite numberkand...

weixin_30827565的博客 71

Codeforces Round #340 (Div. 2)-E- XOR and Favorite Number(莫队算法)

点击查看题目 题意:给你一串数字,若干个查询,每次查询的值是给出的查询区间里的子区间的异或值为k的个数。 题目要求什么很好理解,直接说解法,由于本题只有询问没有修改,所以比较适合离线处理,而莫队算法是离线处理一类区间不修改查询类问题的算法,所以这里我们采用莫队算法来解这道题,莫队算法,一种优雅的暴力算法,算法本身非常的简单易懂,不懂的可以随便学习一下。明白了莫队算法以后,基本就可以做这道题了,...

wookaikaiko的博客 229

Codeforces Round #340 (Div. 2)E. XOR and Favorite Number 莫队算法

E. XOR and Favorite Number Bob has a favorite numberkandaiof lengthn. Now he asks you to answermqueries. Each query is given by a pairliandriand asks you to count the ...

weixin_30252155的博客 108
上一篇: BZOJ 2038 [2009国家集训队]小Z的袜子(hose) (莫队算法)
下一篇: Codeforces Round #442 (Div. 2) F. Ann and Books (莫队算法+离散化)
Roll_Keyboard
博客等级 码龄9年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值