异或密码
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Problem Description晨晨在纸上写了一个长度为N的非负整数序列{ai}。对于这个序列的一个连续子序列{al,al+1,…,ar}晨晨可以求出其中所有数异或的结果 alxoral+1xor...xorar其 中xor表示位异或运算,对应C、C++、 Java等语言中的^运算。
小璐提出了M个询问,每个询问用一个整数 xi描述。
对于每个询问,晨晨需要找到序列{ai}的所有连续子序列,求出每个子序列异或的结果,找到所有的结果中与 xi之差的绝对值最小的一个,并告诉小璐相应子序列的长度。
若有多个满足条件的连续子序列,则告诉小璐这些子序列中最长的长度。Input包含多组测试数据,第一行一个正整数T,表示数据组数。
每组数据共两行。
第一行包含N+1个非负整数。其中第一个数为N,表示序列的长度;接下来N 个数,依次描述序列{ ai}中的每个数。
第二行包含M+1个整数。其中第一个数为M,表示询问的个数;接下来M个数 xi,每个数对应题目描述中的一个询问。
保证 1 <= N <= 100,1 <= M <= 100,ai <= 1024,|xi| <= 1024,数据组数 <= 100。Output对于每组数据输出M + 1行。前M行对应晨晨M个询问的回答,第M + 1行为空行Sample Input2
2 1 1
2 0 2
3 1 2 4
3 10 5 1Sample Output2
13
2
1SourceRecommendjiangzijing2015 | We have carefully selected several similar problems for you: 5981 5980 5979 5978 5977
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5968
题目大意:
给一个序列,求出这个序列所有连续子序列的异或值al^al+1^...^ar,
求这些异或值中与Xi绝对值之差最小的子序列的长度,如果有多个选子序列长度最长的。
题目思路:
【模拟】
枚举l和r算出每一个l~r的亦或值,由于1 <= N <= 100,1 <= M <= 100,
所以亦或的值在0~2047,扫一遍枚举答案即可。
#include<bits/stdc++.h>
#define N 104
#define MAX 0x7f7f7f7f
using namespace std;
typedef long long LL;
int cas;
int n,m,ans,ll;
int a[N],sum[N],b[];
int main()
{
int i,j,k;
//freopen("1.txt","r",stdin);
for(scanf("%d",&cas);cas;cas--)
{
memset(sum,,sizeof(sum));
memset(b,-,sizeof(b));
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",&a[i]);
sum[i]=sum[i-]^a[i];
}
for(i=;i<n;i++)
{
for(j=i+;j<=n;j++)
{
k=sum[i]^sum[j];
b[k]=max(b[k],j-i);
}
}
scanf("%d",&m);
for(i=;i<=m;i++)
{
scanf("%d",&k);
k=(k>)?k:;
for(j=max(,k);j>=;j--)if(b[j]!=-)break;
if(j!=-)
ans=abs(k-j),ll=b[j];
else ans=,ll=;
for(j=max(k,);j<=;j++)if(b[j]!=-)break;
if(ans>abs(j-k))
ans=abs(j-k),ll=b[j];
else if(ans==abs(j-k))
ll=max(b[j],ll);
printf("%d\n",ll);
}
puts("");
}
return ;
}
HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)的更多相关文章
-
HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))
朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descr ...
-
2016年中国大学生程序设计竞赛(合肥)-重现赛1008 HDU 5968
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
-
HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))
扫雷 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
-
HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))
Car Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
-
HDU 5933 ArcSoft&#39;s Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
ArcSoft's Office Rearrangement Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
-
2016年中国大学生程序设计竞赛(合肥)-重现赛1009 HDU 5969
最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
-
HDU 5969 最大的位或 【贪心】 (2016年中国大学生程序设计竞赛(合肥))
最大的位或 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem De ...
-
HDU 5961 传递 【图论+拓扑】 (2016年中国大学生程序设计竞赛(合肥))
传递 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem ...
-
HDU 5937 Equation 【DFS+剪枝】 (2016年中国大学生程序设计竞赛(杭州))
Equation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
随机推荐
-
让div盒子相对父盒子垂直居中的几种方法
div相对于父盒子垂直居中的几种方法,之前在网上看到很多种方法,确实说的很对,也很具体,但是我感觉对于初学者来说,一目了然是最重要的,所以,我把很高深的技巧,和很复杂的css样式都剔除掉,旨在让更多人 ...
-
cf Round 613
A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...
-
rabbitmq技术
Rabbitmq 初识rabbitmq RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现.如果不熟悉AMQP,直接看Rabbi ...
-
做SSH练习的时候,JUunit运行遇到报错信息
提示说是applicationcontext文件中的jdbcUrl信息错误,可是xml文件中的url再三确认是没有错的,不知道怎么回事? 最下面贴上applicationContext.xml中的数据 ...
-
前端资料QQ群交流
转:https://github.com/jsfront/src/blob/master/qq.md 这本来是我QQ群内部的一份公共约定的日常交流规则,后来得到大伙的一致认可,并用实际行动来捍卫它,使 ...
-
Hadoop处理HDF文件
1.前言 HDF文件是遥感应用中一种常见的数据格式,因为其高度结构化的特点,笔者曾被怎样使用Hadoop处理HDF文件这个问题困扰过相当长的一段时间.于是Google各种解决方式,但都没有找到一种理想 ...
-
maven原理
http://www.cnblogs.com/onlys/archive/2011/01/04/1925466.html 基本原理Maven的基本原理很简单,采用远程仓库和本地仓库以及一个类似buil ...
-
apache 不执行PHP,显示代码
首先检查是否安装PHP,已经安装过的话,先执行 locate libphp5.so 查看APACHE是否有SO文件,如果没有,那就要重装PHP了,先执行php -i | grep configure ...
-
入门rocketmq从浅到深
目录 一.引言 二.介绍 三.Rocketmq关键概念 1.主题与标签 2.发送与订阅群组 3.Broker与NameServer 4.广播消费与集群消费 5.消息队列 6.集群方式 7.顺序消息 8 ...
-
解析$(this).data(&#39;type&#39;);
html: <button type="button" class="layui-btn layui-btn-sm" data-type="ad ...