最大xor,and,or
http://210.33.19.103/contest/998
and,or部分 并不用01trie,题目&题解:https://blog.csdn.net/dreaming__ldx/article/details/81909133
(奇怪的方法,然而至今没搞明白:https://blog.csdn.net/izumi_hanako/article/details/79317653)
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
namespace S
{
const int N=;
int ch[N][],mem,sz[N];
int gnode()
{
int t=++mem;ch[t][]=ch[t][]=;sz[t]=;
return t;
}
const int dep=;
void ins(int x,int &num)
{
if(!num) num=gnode();
sz[num]++;
bool d;int i,p=num;
for(i=dep;i>=;i--)
{
d=x&(<<i);
if(!ch[p][d]) ch[p][d]=gnode();
p=ch[p][d];sz[p]++;
}
}
int que(int x,int p)
{
bool d;int i,an=;
for(i=dep;i>=;i--)
{
d=!(x&(<<i));
if(!sz[ch[p][d]]) d=!d;
p=ch[p][d];
if(d) an|=(<<i);
}
return an^x;
}
}
bool vis[];
int q;
int rt;
void ins(int x)
{
if(vis[x]) return;
vis[x]=;
for(int i=;i<=;i++)
if(x&(<<i))
ins(x^(<<i));
}
int que1(int x)//and
{
int i,an=;
for(i=;i>=;i--)
if((x&(<<i))&&vis[an|(<<i)])
an|=(<<i);
return an;
}
int que2(int x)//or
{
int i,an=,d=;
for(i=;i>=;i--)
if(x&(<<i))
an|=(<<i);
else if(vis[d|(<<i)])
an|=(<<i),d|=(<<i);
return an;
}
int main()
{
int tp,x;
scanf("%d",&q);
while(q--)
{
scanf("%d%d",&tp,&x);
if(tp==)
{
S::ins(x,rt);
ins(x);
}
else if(tp==)
{
printf("%d %d %d\n",S::que(x,rt),que1(x),que2(x));
}
else
{
printf("%d\n",S::que(x,rt));
}
}
return ;
}
最大xor,and,or的更多相关文章
- [LeetCode] Maximum XOR of Two Numbers in an Array 数组中异或值最大的两个数字
Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231. Find the maximum re ...
- 二分+DP+Trie HDOJ 5715 XOR 游戏
题目链接 XOR 游戏 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- BZOJ 2115 【Wc2011】 Xor
Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...
- xor和gates的专杀脚本
前段时间的一次样本,需要给出专杀,应急中遇到的是linux中比较常见的两个家族gates和xor. 首先是xor的专杀脚本,xor样本查杀的时候需要注意的是样本的主进程和子进程相互保护(详见之前的xo ...
- Codeforces617 E . XOR and Favorite Number(莫队算法)
XOR and Favorite Number time limit per test: 4 seconds memory limit per test: 256 megabytes input: s ...
- Xor && 线性基练习
#include <cstdio> #include <cstring> ; ; int cnt,Ans,b,x,n; inline int Max(int x,int y) ...
- BC之Claris and XOR
http://acm.hdu.edu.cn/showproblem.php?pid=5661 Claris and XOR Time Limit: 2000/1000 MS (Java/Others) ...
- 异或链表(XOR linked list)
异或链表(Xor Linked List)也是一种链式存储结构,它可以降低空间复杂度达到和双向链表一样目的,任何一个节点可以方便的访问它的前驱节点和后继结点.可以参阅wiki 普通的双向链表 clas ...
- hdu 5661 Claris and XOR
Claris and XOR Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- [BZOJ 2819]NIM(dfs序维护树上xor值)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2819 分析: 树上的nim游戏,关键就是要判断树上的一条链的异或值是否为0 这个题目有 ...
随机推荐
- Codeforces Round #394 (Div. 2) D. Dasha and Very Difficult Problem —— 贪心
题目链接:http://codeforces.com/contest/761/problem/D D. Dasha and Very Difficult Problem time limit per ...
- LOJ114 k大异或和
传送门 (vjudge和hdu也有但是我觉得LOJ好看!而且限制少!) 不过本题描述有误,应该是k小. 首先我们需要对线性基进行改造.需要把每一位改造成为,包含最高位的能异或出来的最小的数. 为啥呢? ...
- C++之构造函数、参数列表、析构函数
参考自:https://blog.csdn.net/sunSHINEEzy/article/details/78122485 构造函数之默认构造函数(调用的构造函数不用传递参数) 两种实例化方式都是默 ...
- 通用双向链表的设计(参考Linux系统中的实现)
通常我们设计设计链表都是将数据域放在里面,这样每次需要使用链表的时候都需要实现一个链表,然后重新实现它的相关操作,这里参考Linux系统中的设计实现了一个通用的双向链表,只需要在你的结构里面有一个这个 ...
- JNI——C调用JAVA
步骤: 1. 创建虚拟机 2. 获得class 3. 实例化对象:获得构造方法(方法名为“<init>”),构造参数,调用方法 4. 调用方法:又分为获得方法,构造方法,调用方法 操作方法 ...
- CSS3:CSS 参考手册
ylbtech-CSS:CSS 参考手册 1.返回顶部 1. W3School 的 CSS 参考手册定期通过所有主流浏览器进行测试. CSS 属性 CSS 属性组: 动画 背景 边框和轮廓 盒(框) ...
- 【原】RHEL6.0企业版安装
作者:david_zhang@sh [转载时请以超链接形式标明文章] 链接:http://www.cnblogs.com/david-zhang-index/p/4166846.html 本文适用RH ...
- 了解Hadoop
Apache Hadoop 官网 Hadoop源码分析 参考1 参考2 Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构. Hadoop 的框架最核心的设计就是:HDFS(H ...
- A - Combination Lock
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description Scroog ...
- 安装openstack出现的问题及解决
感谢http://www.cnblogs.com/nmap/p/6417163.html,参考这篇文章,我在虚拟机上部署成功了,后来因为虚拟机实在带不动,所以改装到物理机上,在实验室找到两台物理机,分 ...