hdu_5968_异或密码(预处理+二分)
题目链接:hdu_5968_异或密码
题意:
中午,不解释
题解:
前缀处理一下异或值,然后上个二分查找就行了,注意是unsigned long long
#include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll; const int N=;
int t,dp[N],a[N],n,m,tp; struct dt
{
int val,len;
bool operator<(const dt &b)const
{
return val<b.val;
}
}s[N*N],ttp;
bool cmp(dt a,dt b)
{
if(a.val==b.val)return a.len>b.len;
return a.val<b.val;
}
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
F(i,,n)scanf("%d",a+i);
F(i,,n)dp[i]=dp[i-]^a[i];
int ed=;
F(j,,n)F(k,j,n)
{
s[++ed].val=dp[k]^dp[j-];
s[ed].len=k-j+;
}
sort(s+,s++ed,cmp);
scanf("%d",&m);
F(i,,m)
{
scanf("%d",&tp);
ttp.val=tp;
int now1=lower_bound(s+,s++ed,ttp)-s,ans;
int now2=now1-;
now2=lower_bound(s+,s++ed,s[now2])-s;
if(now1>ed)now1=ed;
int n1=abs(s[now1].val-tp),n2=abs(s[now2].val-tp);
if(n1>n2)ans=now2;
else if(n1<n2)ans=now1;
else if(s[now1].len>s[now2].len)ans=now1;
else ans=now2;
printf("%d\n",s[ans].len);
}
puts("");
}
return ;
}
hdu_5968_异或密码(预处理+二分)的更多相关文章
- HDU5968 异或密码 —— 二分 + 边界的细节处理
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5968 异或密码 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU 5968 异或密码
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- HDU 5968 异或密码 【模拟】 2016年中国大学生程序设计竞赛(合肥)
异或密码 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Des ...
- [HDU5968]异或密码
[HDU5968]异或密码 题目大意: 数据共\(T(T\le100)\)组.每组给定一个长度为\(n(n\le100)\)的非负整数序列\(A(A_i\le1024)\),\(m(m\le100)\ ...
- 异或密码---hdu5968(CCPC合肥,二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5968 思路:先把所有的连续异或值保存起来,排序,然后用二分找到距离x最近的那个点,判断即可: # ...
- loj 1150(spfa预处理+二分+最大匹配)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26864 思路:首先是spfa预处理出每个'G'到'H'的最短距离, ...
- poj 3501 Escape from Enemy Territory 预处理+二分+bfs
传送门 给一个起点一个终点, 给出整个地图的宽和高, 给出n个敌人的坐标. 让你找到一条路径, 这条路径上的点距离所有敌人的距离都最短, 输出最短距离. 首先预处理出来地图上的所有点到敌人的最短距离, ...
- HDU 5878 I Count Two Three (预处理+二分查找)
题意:给出一个整数nnn, 找出一个大于等于nnn的最小整数mmm, 使得mmm可以表示为2a3b5c7d2^a3^b5^c7^d2a3b5c7d. 析:预处理出所有形为2a3 ...
- SGU 531 - Bonnie and Clyde 预处理+二分
Bonnie and Clyde Description Bonnie and Clyde are into robbing banks. This time their target is a to ...
随机推荐
- CentOS 6.5安装之后的网络配置
CentOS 6.5安装之后的网络配置 1.查看IP地址,得到只有一个回环地址 127.0.0.1 2.进行网络测试,现在来测试下,看能不能ping通外网www.baidu.com 下面的是,关于pi ...
- Web框架——Django笔记
Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序 ...
- 读取Oracle表结构数据
<html lang="zh-cn"> <head> <meta name="generator" content="O ...
- asp.net网站发布到服务器GET的技能
刚刚知道映射网络驱动器的作用(虽然才知道,但是我高兴) 把服务器上的硬盘或者其他电脑共享给你的盘映射到本地,就和操作本地硬盘一样. 双击计算机->映射网络驱动器->上面选择驱动器号 下面文 ...
- 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
当你想下载Linux.JDK.Tomcat.eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个? 当你看到这些内容:x86.x64.x86-32.x86-64.ia64 ...
- shell中bash的常见命令
shell 在计算机科学中,Shell俗称壳,用来区别Kernel(核) Shell分类:1:图形界面shell:通过提供友好的可视化界面,调用相应应用程序,如windows系列操作系统,Linux系 ...
- CodeForces 340E Iahub and Permutations
容斥原理,组合数. 找出有$cnt$个数字还有没放,那么总方案数就是$cnt!$. 总方案数里面包含了正确的和非正确的,我们需要将非正确的删去. 先删去$1$个数字$a[i]=i$的情况,发现会多删, ...
- http请求的概念
我曾多次阅读http协议,但是理解依然不深,在此,再次阅读,再次理解.加深两点:解析头部信息\r\n,分解头部和主体用\r\n\r\n.之所以一次请求会看到网络里有很多请求,是因为浏览器代替访问了多次 ...
- PHP奇怪现象
<?php $a = 0.29; $b = (int)($a*100); echo $b; //输出28,PHP版本5.6.24 echo 0.1 + 0.2 - 0.3; //输出5.5511 ...
- python 学习 异常处理
异常处理实例 while True: num1 = input('num1:') num2 = input('num2:') try: num1 = int(num1) num2 = int(num2 ...