【HDU - 5968】异或密码(思维,STLmap)

题干:

晨晨在纸上写了一个长度为N的非负整数序列{aiai}。对于这个序列的一个连续子序列{al,al+1,…,aral,al+1,…,ar}晨晨可以求出其中所有数异或的结果 alxoral+1xor...xoraralxoral+1xor...xorar其 中xor表示位异或运算,对应C、C++、 Java等语言中的^运算。
小璐提出了M个询问,每个询问用一个整数 xixi描述。
对于每个询问,晨晨需要找到序列{aiai}的所有连续子序列,求出每个子序列异或的结果,找到所有的结果中与 xixi之差的绝对值最小的一个,并告诉小璐相应子序列的长度。
若有多个满足条件的连续子序列,则告诉小璐这些子序列中最长的长度。

Input

包含多组测试数据,第一行一个正整数T,表示数据组数。
每组数据共两行。
第一行包含N+1个非负整数。其中第一个数为N,表示序列的长度;接下来N 个数,依次描述序列{ aiai}中的每个数。
第二行包含M+1个整数。其中第一个数为M,表示询问的个数;接下来M个数 xixi,每个数对应题目描述中的一个询问。
保证 1 <= N <= 100,1 <= M <= 100,aiai <= 1024,|xixi| <= 1024,数据组数 <= 100。

Output

对于每组数据输出M + 1行。前M行对应晨晨M个询问的回答,第M + 1行为空行

Sample Input

2
2 1 1
2 0 2
3 1 2 4
3 10 5 1

Sample Output

2
13
2
1

解题报告:

直接记录每一个异或值下的最长长度,最后二分查找输出就可以。注意并不是样例之间有空行,而是每一个样例后面都输出空行!时间复杂度O(T*(n^2log(n^2)+mlog(n^2)))

其实这题也可以不带log。

有一个O(T*m*n^2)的做法,先预处理异或和,然后对于每个询问,n^2暴力。这样可以过。

第二种方法是O(T*n^2)的做法,不用map,直接用数组,然后用并查集优化一下,对于每次查询就可以O1了,但是实现比较复杂,可能没人会写吧、、、

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define FF first
#define SS second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pair<int,int> PII;
const int MAX = 2e5 + 5;
int n,m;
map<int,int> mp;
int a[MAX];
int main()
{int T;cin>>T;while(T--) {scanf("%d",&n);mp.clear();for(int i = 1; i<=n; i++) scanf("%d",a+i);for(int i = 1; i<=n; i++) {int Xor=0;for(int j = i; j<=n; j++) {Xor ^= a[j];if(mp.find(Xor) != mp.end()) mp[Xor] = max(mp[Xor],j-i+1);else mp[Xor] = j-i+1;}}scanf("%d",&m);int x;while(m--) {scanf("%d",&x);auto it = mp.lower_bound(x);if(it == mp.end()) --it;auto itt = it;if(itt != mp.begin()) --itt;int cha1 = abs(it->FF - x),cha2 = abs(itt->FF - x);if(cha1 < cha2) printf("%d\n",it->SS);else if(cha1 > cha2) printf("%d\n",itt->SS);else printf("%d\n",max(it->SS,itt->SS));}puts("");}return 0 ;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口和抽象类是否继承了Object

我们先看一下Java的帮助文档对于Object的描述&#xff1a; Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. Object 类是类层次结构的根类。每个类都使用 …

3.2)深度学习笔记:机器学习策略(2)

目录 1&#xff09;Carrying out error analysis 2&#xff09;Cleaning up Incorrectly labeled data 3&#xff09;Build your first system quickly then iterate 4&#xff09;Training and testing on different distributios 5&#xff09;Bias and Variance with m…

【CodeForces - 674B 】Bear and Two Paths(贪心,思维,水题)

题干&#xff1a; 第一行给出N和M代表有N个难度1~N的题目&#xff0c;M代表有M个约束。接下来M行&#xff0c;每行两个数代表这一个约束的两个题目。 代表难度的数字越大&#xff0c;题目越难。现在要求你将N个题目分成不重不漏的两组(div1和div2)&#xff0c;要求1每组不能为…

4.1)深度卷积网络:卷积神经网络基础

目录 1&#xff09;Computer vision 2&#xff09;Edge detection example&#xff08;理解&#xff09; 3&#xff09;More edge detection 4&#xff09;Padding&#xff08;重点&#xff09; 5&#xff09;Strided convolutions&#xff08;重点&#xff09; 6&#x…

【2019icpc南京站网络赛 - H】Holy Grail(最短路,spfa判负环)

题干&#xff1a; As the current heir of a wizarding family with a long history,unfortunately, you find yourself forced to participate in the cruel Holy Grail War which has a reincarnation of sixty years.However,fortunately,you summoned a Caster Servant wi…

4.2)深度卷积网络:实例研究

目录 1&#xff09;Why look at case studies? 2&#xff09;Classic networks&#xff08;理解&#xff09; 3&#xff09;ResNets&#xff08;理解&#xff09; 4&#xff09;Why ResNets work?&#xff08;经典&#xff09; 5&#xff09;Networks in Networks and 1…

10种常见的软件架构模式

有没有想过要设计多大的企业规模系统&#xff1f;在主要的软件开发开始之前&#xff0c;我们必须选择一个合适的体系结构&#xff0c;它将为我们提供所需的功能和质量属性。因此&#xff0c;在将它们应用到我们的设计之前&#xff0c;我们应该了解不同的体系结构。 什么是架构模…

4.3)深度卷积网络:目标检测

目录 1&#xff09;Object localization&#xff08;重点&#xff09; 2&#xff09;Landmark detection 3&#xff09;Object detection 4&#xff09;Convolutional implementation of sliding windows 5&#xff09;Bounding box prediction&#xff08;重点&#xff0…

【牛客 - 82B】区间的连续段(贪心,建图,倍增)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/82/B 来源&#xff1a;牛客网 给你一个长为n的序列a和一个常数k 有m次询问&#xff0c;每次查询一个区间[l,r]内所有数最少分成多少个连续段&#xff0c;使得每段的和都 < k 如果这一次查询无解…

苹果手机PD快充电压电流全程详解

iphone PD充电策略&#xff0c;一共分为5个阶段。 第①阶段&#xff1a;iphone X电量为0%处于关机状态&#xff0c;这时插入PD充电器iphone会检测是否支持apple 5V2.4A协议&#xff0c;是的话会以5V2.4A进行充电。苹果原厂29w / 61w / 87w PD充电器都是自带 apple 5V2.4A 协议…

4.4)深度卷积网络:人脸识别和神经风格转换

目录 1&#xff09;What is face recognition? 2&#xff09;One-shot learning 3&#xff09;Siamese network 4&#xff09;Triplet Loss&#xff08;重点&#xff09; 5&#xff09;Face Verification and Binary Classification 6&#xff09;What is neural style …

【2019牛客暑期多校训练营(第八场)- G】Gemstones(栈,模拟)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/888/G 来源&#xff1a;牛客网 Gromah and LZR have entered the seventh level. There are a sequence of gemstones on the wall. After some tries, Gromah discovers that one can take exactly…

一步步编写操作系统 35 内存为何要分页

一直以来我们都直接在内存分段机制下工作&#xff0c;目前未出问题看似良好&#xff0c;的确目前咱们的应用过于简单了&#xff0c;就一个loader在跑&#xff0c;能出什么问题呢。可是想像一下&#xff0c;当我们物理内存不足时会怎么办呢&#xff1f;比如系统里的应用程序过多…

《python深度学习》代码中文注释

《python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱&#xff08;François Chollet&#xff09;执笔&#xff0c;详尽介绍了用Python和Keras进行深度学习的探索实践&#xff0c;包括计算机视觉、自然语言处理、生成式模型等应用。书中包含30多个代码示…

【BZOJ - 4754】独特的树叶(树哈希)

题干&#xff1a; JYY有两棵树A和B&#xff1a;树A有N个点&#xff0c;编号为1到N&#xff1b;树B有N1个点&#xff0c;编号为1到N1。JYY知道树B恰好是由树A加上一个叶 节点&#xff0c;然后将节点的编号打乱后得到的。他想知道&#xff0c;这个多余的叶子到底是树B中的哪一个…

一步步编写操作系统 36 一级页表与虚拟地址1

为了给大家说清楚分页机制&#xff0c;我们先在宏观上说下cpu地址变换过程&#xff0c;先让大家有个直观的印象&#xff0c;如果有不明白的地方也不要着急&#xff0c;适时地不求甚解&#xff0c;有助于从全局上将知识融会贯通&#xff08;这句话是我即兴说的&#xff0c;说得多…

动手学无人驾驶(4):基于激光雷达点云数据3D目标检测

上一篇文章《动手学无人驾驶&#xff08;3&#xff09;&#xff1a;基于激光雷达3D多目标追踪》介绍了3D多目标追踪&#xff0c;多目标追踪里使用的传感器数据为激光雷达Lidar检测到的数据&#xff0c;本文就介绍如何基于激光雷达点云数据进行3D目标检测。 论文地址&#xff1a…

【BZOJ - 4337】BJOI2015 树的同构(树哈希)

题干&#xff1a; 树是一种很常见的数据结构。 我们把N个点&#xff0c;N-1条边的连通无向图称为树。 若将某个点作为根&#xff0c;从根开始遍历&#xff0c;则其它的点都有一个前驱&#xff0c;这个树就成为有根树。 对于两个树T1和T2&#xff0c;如果能够把树T1的所有点…

一步步编写操作系统 37 一级页表与虚拟地址2

接上节&#xff0c;分页机制是建立在分段机制之上&#xff0c;与其脱离不了干系&#xff0c;即使在分页机制下的进程也要先经过逻辑上的分段才行&#xff0c;每加载一个进程&#xff0c;操作系统按照进程中各段的起始范围&#xff0c;在进程自己的4GB虚拟地址空间中寻找可有空间…

PointNet:3D点集分类与分割深度学习模型

之前的一篇博客《动手学无人驾驶&#xff08;4&#xff09;&#xff1a;基于激光雷达点云数据3D目标检测》里介绍到了如何基于PointRCNN模型来进行3D目标检测&#xff0c;作者使用的主干网是PointNet&#xff0c;而PointNet又是基于PointNet来实现的。今天写的这篇博客就是对Po…