题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5968

思路:先把所有的连续异或值保存起来,排序,然后用二分找到距离x最近的那个点,判断即可;

 

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <bitset>
#include <iostream>
#include <time.h> typedef long long LL; using namespace std; const int N = ;
const double eps = 1e-;
const int INF = 0x3f3f3f3f;
const int mod = ; struct node
{
int len, num;
}c[N*N]; int a[N], b[N], k, c1[N*N], c2[N*N]; bool cmp(node p, node q)
{
if(p.num!=q.num)
return p.num<q.num;
return p.len < q.len;
} int Find(int num)
{
int pos = upper_bound(c1, c1+k, num)-c1;
return c2[pos-];
} int solve(int x)///Find x in the c[];
{
int pos = lower_bound(c1, c1+k, x)-c1; if(pos == || c1[pos] == x)///如果数组中含有x,那就找到异或值为x的最大长度;
return Find(c1[pos]); int p = abs(c1[pos]-x);
int q = abs(c1[pos-]-x);
int ans1 = Find(c1[pos]);
int ans2 = Find(c1[pos-]); if(p < q || (p == q && ans1>ans2))
return ans1;
return ans2;
} int main()
{
int T, n, m; scanf("%d", &T); while(T --)
{
scanf("%d", &n); memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(c, , sizeof(c)); for(int i=; i<=n; i++)
{
scanf("%d", &a[i]);
b[i] = b[i-]^a[i];
} k = ; for(int i=; i<=n; i++)/// the length is i;
{
for(int j=; i+j-<=n; j++)/// from j to j+i;
{
int num = b[j+i-]^b[j-];
c[k].len = i;
c[k++].num = num;
}
} sort(c, c+k, cmp); for(int i=; i<k; i++)
{
c1[i] = c[i].num;
c2[i] = c[i].len;
} scanf("%d", &m); for(int i=; i<=m; i++)
{
int x; scanf("%d", &x); int ans = solve(x); printf("%d\n", ans);
}
printf("\n");
}
return ;
}

异或密码---hdu5968(CCPC合肥,二分)的更多相关文章

  1. HDU5968 异或密码 —— 二分 + 边界的细节处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5968 异或密码 Time Limit: 2000/1000 MS (Java/Others)    M ...

  2. HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)

    异或密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Des ...

  3. hdu_5968_异或密码(预处理+二分)

    题目链接:hdu_5968_异或密码 题意: 中午,不解释 题解: 前缀处理一下异或值,然后上个二分查找就行了,注意是unsigned long long #include<bits/stdc+ ...

  4. [HDU5968]异或密码

    [HDU5968]异或密码 题目大意: 数据共\(T(T\le100)\)组.每组给定一个长度为\(n(n\le100)\)的非负整数序列\(A(A_i\le1024)\),\(m(m\le100)\ ...

  5. HDU 5968 异或密码

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  6. HDU-5968异或密码

    超级传送门 题目描述: 晨晨在纸上写了一个长度为N的非负整数序列{ai}.对于这个序列的一个连续子序列{al,al+1,…,ar}晨晨可以求出其中所有数异或的结果 alxoral+1xor...xor ...

  7. BZOJ 4103 [Thusc 2015]异或运算 (可持久化01Trie+二分)

    题目大意:给你一个长方形矩阵,位置$i,j$上的数是$a_{i}\;xor\;b_{j}$,求某个子矩阵内第$K$大的值 最先想的是二分答案然后验证,然而是$O(qnlogmloga_{i})$,不出 ...

  8. 2016 CCPC 合肥赛区 平行四边形//打铁记录..... 背锅还是我在行 此处@ctr 233

    也希望自己记住这些题并不是真的很难很难... 平行四边形... 这个题要两个直线上的两个点和给出点中的两个点组成的平行四边形面积最大. 确定两个点后,发现线上的点随之确定.那么我们解出线上的点 然后求 ...

  9. HDU 5968:异或密码(暴力)

    http://acm.hdu.edu.cn/showproblem.php?pid=5968 题意:中文题意. 思路:一开始不会做,后来发现数据范围很小,而且那个数要是连续的,所以可能把所有情况枚举出 ...

随机推荐

  1. 一、CoreAnimation之图层树详解

    CoreAnimation :在字面意思为“核心动画”,但是如果您认为它仅仅是一个动画框架,那可能就要错过一些经典功能了.动画,只是CoreAnimation功能的一小部分,毕竟人家的源头是一个叫做L ...

  2. css3 transition

    <html>   <head lang="en">   <meta charset="UTF-8">   <title ...

  3. 【Java EE 学习 35 上】【strus2】【类型转换器】【struts2和Servlet API解耦】【国际化问题】【资源文件乱码问题已经解决】

    一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 package com.kdyzm ...

  4. Linux下的tmpfs文件系统(/dev/shm)

    转自:http://www.2cto.com/os/201411/354888.html 介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统.redhat中默认 ...

  5. 前端SEO技巧

    前几天在慕课网上学习了“SEO在网页制作中的应用”,觉得挺好.挺有用的,今天,特此做了一个小小的笔记,也算是对学习过后的一个总结. 一.搜索引擎工作原理 当我们在输入框中输入关键词,点击搜索或查询时, ...

  6. ScrollView控件实现屏幕滚动

    滚动视图是指当拥有很多内容,屏幕显示不完全时,需要通过滚动来显示完整的视图 ScrollView的种类: (1)水平滚动视图:HorizontalScrollView (2)垂直滚动视图:Scroll ...

  7. android--asp.net webservice 返回json

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. Java 根据两个经纬度坐标计算距离

    public class Distance{ private static final double EARTH_RADIUS = 6378137;    private static double  ...

  9. 归一化交叉相关Normalization cross correlation (NCC)

    归一化交叉相关Normalization cross correlation (NCC) 相关系数,图像匹配 NCC正如其名字,是用来描述两个目标的相关程度的,也就是说可以用来刻画目标间的相似性.一般 ...

  10. 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术

    一.引言 数据存储和网络功能可以说是一款游戏中必不可少的功能,如果一款游戏不能保存进度那么它的可玩性必然大打折扣(试想一下,玩家辛辛苦苦玩了一整天的游戏,结果退出时告诉人家不能保存关卡信息,你明天还得 ...