BZOJ4546: codechef XRQRS
Description
Input
Output
Sample Input
1 8
5 1 1 1
1 2
2 2 2 7
2 2 2 7
1 1
4 2 2 2
2 1 2 3
4 1 3 5
1 6
Sample Output
2
2
1
8
2
HINT
#include<cstdio>
#include<cctype>
#include<queue>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i;i=next[i])
using namespace std;
const int BufferSize=1<<16;
char buffer[BufferSize],*head,*tail;
inline char Getchar() {
if(head==tail) {
int l=fread(buffer,1,BufferSize,stdin);
tail=(head=buffer)+l;
}
return *head++;
}
inline int read() {
int x=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) x=x*10+c-'0';
return x*f;
}
const int maxn=500010;
const int maxnode=10000010;
int ch[maxnode][2],s[maxnode],ToT;
void insert(int& ny,int x,int val) {
ny=++ToT;int y=ny;s[y]=s[x]+1;
dwn(i,18,0) {
int c=val>>i&1;
ch[y][0]=ch[x][0];ch[y][1]=ch[x][1];
s[ch[y][c]=++ToT]=s[ch[x][c]]+1;
y=ch[y][c];x=ch[x][c];
}
}
int querymx(int y,int x,int val) {
int ans=0;
dwn(i,18,0) {
int c=val>>i&1;
if(s[ch[y][c^1]]-s[ch[x][c^1]]) ans|=(1<<i),c^=1;
x=ch[x][c];y=ch[y][c];
}
return ans;
}
int query(int y,int x,int val) {
int ans=0;
dwn(i,18,0) {
int c=val>>i&1;
if(c) ans+=s[ch[y][0]]-s[ch[x][0]];
x=ch[x][c];y=ch[y][c];
}
return ans;
}
int kth(int y,int x,int k) {
int ans=0;
dwn(i,18,0) {
int k2=s[ch[y][0]]-s[ch[x][0]];
if(k<=k2) x=ch[x][0],y=ch[y][0];
else ans|=(1<<i),k-=k2,x=ch[x][1],y=ch[y][1];
}
return ans;
}
int n,top,fa[maxn],root[maxn],S[maxn];
int main() {
int p=0;
dwn(T,read(),1) {
int tp=read();
if(tp==1) insert(root[++n],root[p],read()),fa[n]=p,S[++top]=p=n;
else if(tp==3) dwn(i,read(),1) p=fa[p],top--;
else {
int l=read(),r=read(),x=read();
if(tp==2) printf("%d\n",x^querymx(root[S[r]],root[S[l-1]],x));
if(tp==4) printf("%d\n",query(root[S[r]],root[S[l-1]],x+1));
if(tp==5) printf("%d\n",kth(root[S[r]],root[S[l-1]],x));
}
}
return 0;
}
BZOJ4546: codechef XRQRS的更多相关文章
- bzoj 4546: codechef XRQRS [可持久化Trie]
4546: codechef XRQRS 可持久化Trie codechef上过了,bzoj上蜜汁re,看别人说要开5.2e5才行. #include <iostream> #includ ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- Involuting Bunny! (2021.9)
文化课就很掉头发,文科都能学好我还怕竞赛?( 大概从"刷的题的题解"推广为"所有做的题的题解"吧,兔子比较懒,这样写题解轻松一些. Gym10305 ...
- 【BZOJ-3514】Codechef MARCH14 GERALD07加强版 LinkCutTree + 主席树
3514: Codechef MARCH14 GERALD07加强版 Time Limit: 60 Sec Memory Limit: 256 MBSubmit: 1288 Solved: 490 ...
- 【BZOJ4260】 Codechef REBXOR 可持久化Trie
看到异或就去想前缀和(⊙o⊙) 这个就是正反做一遍最大异或和更新答案 最大异或就是很经典的可持久化Trie,从高到低贪心 WA: val&(1<<(base-1))得到的并不直接是 ...
- codechef 两题
前面做了这场比赛,感觉题目不错,放上来. A题目:对于数组A[],求A[U]&A[V]的最大值,因为数据弱,很多人直接排序再俩俩比较就过了. 其实这道题类似百度之星资格赛第三题XOR SUM, ...
- codechef January Challenge 2014 Sereja and Graph
题目链接:http://www.codechef.com/JAN14/problems/SEAGRP [题意] 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1. [分析] 从结 ...
- BZOJ3509: [CodeChef] COUNTARI
3509: [CodeChef] COUNTARI Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 339 Solved: 85[Submit][St ...
- CodeChef CBAL
题面: https://www.codechef.com/problems/CBAL 题解: 可以发现,我们关心的仅仅是每个字符出现次数的奇偶性,而且字符集大小仅有 26, 所以我们状态压缩,记 a[ ...
随机推荐
- python 之socket 网络编程
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ...
- android 入门-Service
sdk 1.7 package com.example.hellowrold; import java.util.Random; import com.example.hellowrold.R.id; ...
- 如何离线下载Chrome的安装包
打开Chrome官网(自行搜索)点击下载后下载的是联网安装包,这对部分上网不方便的用户造成了一定的麻烦. http://www.google.cn/chrome/browser/desktop/ind ...
- Android之Inflate()
Inflate()作用就是将xml定义的一个布局找出来,但仅仅是找出来而且隐藏的,没有找到的同时并显示功能.最近做的一个项目就是这一点让我迷茫了好几天. Android上还有一个与Inflate( ...
- T-SQL Transact-SQL 编程
T-SQL语句用于管理SQL Server数据库引擎实例,创建和管理数据库对象,以及查询.插入.修改和删除数据. Ø 变量 . 局部变量(Local Variable) 局部变量是用户可以自定义的变量 ...
- Java可变参数讲解
如果实现的多个方法,这些方法里面逻辑基本相同,唯一不同的是传递的参数的个数,可以使用可变参数可变参数的定义方法 数据类型...数组的名称,这个数组存储传递过来的参数,类似JavaScript注意点: ...
- Eclipse首字母快捷设置
windows->Preference ,然后:
- 在C#程序中实现插件架构
阅读提示:这篇文章将讲述如何利用C#奇妙的特性,实现插件架构,用插件(plug-ins)机制建立可扩展的解决方案. 在.NET框架下的C#语言,和其他.NET语言一样提供了很多强大的特性和机制.其中一 ...
- java的几种连接池
连接池的管理用了了享元模式,这里对连接池进行简单设计. 一.设计思路 1.连接池配置属性DBbean:里面存放可以配置的一些属性 2.连接池接口IConnectionPool:里面定义一些基本的获取连 ...
- hdu3496 二维01背包
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3496 //刚看题目以为是简单的二维01背包,but,,有WA点.. 思路:题中说,只能买M ...