2022春每日一题:Day 29
题目:Mishka and Interesting sum
这题稍微分析就能发现实际这个题就是求区间异或和异或上区间不同数的异或和,因此直接转化为HH的项链。
代码:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <map>
#define lowbit(x) x&-x
const int N=1e6+5;
using namespace std;
typedef pair<int,int> PII;
struct node
{
int l,r,id;
node(int ll,int rr,int ii)
{
l=ll;r=rr;id=ii;
}
node(){
}
friend bool operator < (node a,node b)
{
if(a.r==b.r)
return a.l<b.l;
return a.r<b.r;
}
}e[N];
PII b[N];
int n,m,a[N],ret[N],c[N],t[N],sum[N],num[N],cnt;
map <int,int> mp;
namespace fenwick
{
struct fwt
{
int s;
}fw[N];
int query(int x)
{
int ret=0;
for(int i=x;i;i-=lowbit(i))
ret^=fw[i].s;
return ret;
}
void modify(int x,int z)
{
for(int i=x;i<=n;i+=lowbit(i))
fw[i].s^=z;
}
}
using namespace fenwick;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]={a[i],i};
sum[i]=sum[i-1]^a[i];
if(!mp.count(a[i]))
mp[a[i]]=i;
}
/*
sort(b+1,b+1+n);
int last=-1,tot=1;
for(int i=1;i<=n;i++)
{
if(last!=b[i].first)
tot=i,last=b[i].first;
num[b[i].second]=tot;
}
*/
scanf("%d",&m);
for(int i=1;i<=m;i++)
scanf("%d %d",&e[i].l,&e[i].r),e[i].id=i;
sort(e+1,e+1+m);
int head=1;
for(int i=1;i<=m;i++)
{
while(head<=e[i].r)
{
if(t[mp[a[head]]])
modify(t[mp[a[head]]],a[head]);
modify(head,a[head]);
t[mp[a[head]]]=head;
head++;
}
head=e[i].r+1;
ret[e[i].id]=(query(e[i].r)^query(e[i].l-1)^sum[e[i].r]^sum[e[i].l-1]);
}
for(int i=1;i<=m;i++)
printf("%d\n",ret[i]);
return 0;
}
2022春每日一题:Day 29的更多相关文章
- <每日一题>题目29:五个数字能组成多少互不重复的四位数
#有五个数字:1.2.3.4.5,能组成多少个互不相同且无重复数字的四位数?各是多少? e =[] for a in range(1,6): for b in range(1,6): for c in ...
- 老男孩IT教育-每日一题汇总
老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...
- PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数
PL/SQL Challenge 每日一题:2014-3-14 11gR2中带RELIES_ON子句的RESULT_CACHE函数 最先答对且答案未经编辑的puber将获得纪念章一枚(答案不可编辑但可 ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170103
20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20161230
// 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...
- 【Java每日一题】20161229
package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1229 { public s ...
- 【Java每日一题】20161228
package Dec2016; import java.util.ArrayList; import java.util.List; public class Ques1228 { public s ...
随机推荐
- 字节微服务HTTP框架Hertz使用与源码分析|拥抱开源
一.前言 Hertz[həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp.gin.echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性 ...
- JavaScript 之 原型对象、对象原型 —— { }
JavaScript -- 构造函数 // 构造函数 function Player(name, age) { this.name = name; this.age = age; } JavaScri ...
- python包合集-argparse
一.argparse简介 argparse 是 python 自带的命令行参数解析包,可以用来方便的服务命令行参数,使用之前需要先导入包 import argparse 二.简单案例 简单使用,创建一 ...
- 采云链SRM SaaS供应商管理系统,发展型中小企业的福音
采购业务的发展遵循一些规律:采购从一开始围绕"供应商"开展,逐渐发展成围绕"货物"进行,如今围绕"供应商协同"和"采购流程管理&q ...
- AVL Tree (1) - Definition, find and Rotation
1. 定义 (15-1) [AVL tree]: 一棵空二叉树是 AVL tree; 若 T 是一棵非空二叉树, 则 T 满足以下两个条件时, T 是一棵 AVL tree: T_LeftSubtre ...
- parted创建磁盘分区并创建LVM(Linux合并多块大于2T的磁盘并合并到一个分区)
文章转载自:https://blog.csdn.net/likemebee/article/details/85630808
- Elasticsearch单字段支持的最大字符数
ignore_above的作用 ES中用于设置超过设定字符后,不被索引或者存储. 当字符超过给定长度后,能否存入 keyword类型的最大支持的长度为--32766个UTF-8类型的字符. 也就是说t ...
- Beats:使用 Elastic Stack 记录 Python 应用日志
文章转载自:https://elasticstack.blog.csdn.net/article/details/112259500 日志记录实际上是每个应用程序都必须具备的功能.无论你选择基于哪种技 ...
- while.for循环和基本数据类型内置方法
while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...
- 🔥支持 Java 19 的轻量级应用开发框架,Solon v1.10.4 发布
Java 轻量级应用开发框架.可用来快速开发 Java 应用项目,主框架仅 0.1 MB. 相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 - 10 倍. (更快) ...