【COGS 1534】 [NEERC 2004]K小数 &&【COGS 930】 [河南省队2012] 找第k小的数 可持久化01Trie
板子题,只是记得负数加fix最方便
#include <cstdio>
const int A=,N=;
namespace FIFO
{
char ch,B[<<],*S=B,*T=B;
#define getc() (S==T&&(T=(S=B)+fread(B,1,1<<20,stdin),S==T)?0:*S++)
#define isd(c) (c>='0'&&c<='9')
int aa,bb;int F(){
while(ch=getc(),!isd(ch)&&ch!='-');ch=='-'?aa=bb=:(aa=ch-'',bb=);
while(ch=getc(),isd(ch))aa=aa*+ch-'';return bb?aa:-aa;
}
}
#define gi FIFO::F()
struct Trie{
Trie *ch[];int size;
}*root[N],*null,node[(<<)+];
int n,m,sz=;
int main(){
freopen("kth.in","r",stdin);freopen("kth.out","w",stdout);
null=node,null->ch[]=null->ch[]=null,root[]=null;
n=gi,m=gi;for(register int i=,x;i<=n;i++){
root[i]=node+sz,sz++,x=gi;register Trie *p=root[i],*last=root[i-];
for(register int i=A;i>=;i--)
p->ch[(x>>i)&]=node+sz,sz++,p->ch[((x>>i)&)^]=last->ch[((x>>i)&)^],
p=p->ch[(x>>i)&],last=last->ch[(x>>i)&],p->size=last->size+;
}
register int x,y,k;while(m--){
x=gi,y=gi,k=gi;register Trie *a=root[x-],*b=root[y];register int ret=;
for(register int i=A;i>=;i--)
if(b->ch[]->size-a->ch[]->size>=k)a=a->ch[],b=b->ch[];
else ret|=(<<i),k-=b->ch[]->size-a->ch[]->size,a=a->ch[],b=b->ch[];
printf("%d\n",ret);
}
}
【COGS 930】 [河南省队2012] 找第k小的数
#include <cstdio>
const int A=,N=,fox=;
namespace FIFO
{
char ch,B[<<],*S=B,*T=B;
#define getc() (S==T&&(T=(S=B)+fread(B,1,1<<20,stdin),S==T)?0:*S++)
#define isd(c) (c>='0'&&c<='9')
int aa,bb;int F(){
while(ch=getc(),!isd(ch)&&ch!='-');ch=='-'?aa=bb=:(aa=ch-'',bb=);
while(ch=getc(),isd(ch))aa=aa*+ch-'';return bb?aa:-aa;
}
}
#define gi FIFO::F()
struct Trie{
Trie *ch[];int size;
}*root[N],*null,node[(<<)+];
int n,m,sz=;
int main(){
freopen("kthnumber.in","r",stdin);freopen("kthnumber.out","w",stdout);
null=node,null->ch[]=null->ch[]=null,root[]=null;
n=gi,m=gi;for(register int i=,x;i<=n;i++){
root[i]=node+sz,sz++,x=gi+fox;register Trie *p=root[i],*last=root[i-];
for(register int i=A;i>=;i--)
p->ch[(x>>i)&]=node+sz,sz++,p->ch[((x>>i)&)^]=last->ch[((x>>i)&)^],
p=p->ch[(x>>i)&],last=last->ch[(x>>i)&],p->size=last->size+;
}
register int x,y,k;while(m--){
x=gi,y=gi,k=gi;register Trie *a=root[x-],*b=root[y];register int ret=;
for(register int i=A;i>=;i--)
if(b->ch[]->size-a->ch[]->size>=k)a=a->ch[],b=b->ch[];
else ret|=(<<i),k-=b->ch[]->size-a->ch[]->size,a=a->ch[],b=b->ch[];
printf("%d\n",ret-fox);
}
}
【COGS 1534】 [NEERC 2004]K小数
【COGS 1534】 [NEERC 2004]K小数 &&【COGS 930】 [河南省队2012] 找第k小的数 可持久化01Trie的更多相关文章
- COGS 930. [河南省队2012] 找第k小的数
题目描述 看到很短的题目会让人心情愉悦,所以给出一个长度为N的序列A1,A2,A3,...,AN, 现在有M个询问,每个询问都是Ai...Aj中第k小的数等于多少. 输入格式 第一行两个正整数N,M. ...
- COGS 930. [河南省队2012] 找第k小的数 主席树
主席树裸板子 #include<cstdio> #include<iostream> #include<algorithm> #define MAXN 100005 ...
- [河南省队2012] 找第k小的数
★★☆ 输入文件:kth.in 输出文件:kth.out 简单对比时间限制:1 s 内存限制:128 MB 题目描述 看到很短的题目会让人心情愉悦,所以给出一个长度为N的序列A1,A2 ...
- 第 k 小的数
一.寻找两个有序数组的中位数 1.1 问题描述 给定两个大小为 m 和 n 的不同时为空的有序数组 nums1 和 nums2.找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m ...
- 每天一道算法题目(18)——取等长有序数组的上中位数和不等长有序数组的第k小的数
1.取上中位数 题目: 给定两个有序数组arr1和arr2,两个数组长度都为N,求两个数组中所有数的上中位数.要求:时间复杂度O(logN). 例如: arr1 = {1, ...
- 第K 小数
[问题描述]有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少.[输入格式]输入文件名为number.in.输入文件包 ...
- 数组第K小数问题 及其对于 快排和堆排 的相关优化比较
题目描述 给定一个整数数组a[0,...,n-1],求数组中第k小数 输入描述 首先输入数组长度n和k,其中1<=n<=5000, 1<=k<=n 然后输出n个整形元素,每个数 ...
- Bsoj 1322 第K小数
第K小数 Description 现在已有N个整数,你有以下三种操作: 1 A:表示加入一个值为A的整数: 2 B:表示删除其中值为B的整数: 3 K:表示输出这些整数中第K小的数: Input 第一 ...
- 算法打基础——顺序统计(找第k小数)
这次主要是讲如何在线性时间下找n个元素的未排序序列中第k小的数.当然如果\(k=1 or k=n\),即找最大最小 数,线性时间内遍历即可完成,当拓展到一般,如中位数时,相关算法就值得研究了.这里还要 ...
随机推荐
- js onsubmit和return false的关系
一直以来,我都是以为onsubmit=“return false”就不会进行提交,但经过项目之后才知道return false只是避免了之后的跳转,但onsubmit已经是正在进行了,故onsubmi ...
- hive表格取差集
hive 求两个集合的差集 业务场景是这样的,这里由两个hive表格A和B A的形式大概是这样的:uid B的形式大概是这样的:uid 我想要得到存在A中但是不存在B中的uid 具体代码如下 sele ...
- mongodb的学习之旅一
描述 作为一枚菜鸟级别的coder,刚接触nodejs没有多久.现在在学习微信公众号的开发,但是碰到了mongodb保存用户数据的时候,出现了DeprecationWarning: Mongoose: ...
- python2.7练习小例子(十二)
12):题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数" ...
- python基础之try异常处理、socket套接字基础part1
异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...
- 在WPF中自定义控件(2) UserControl
原文:在WPF中自定义控件(2) UserControl 在WPF中自定义控件(2) UserControl ...
- Git使用之一:创建仓储和提交文件
一.前期工作: 1.准备自己的文件夹用于同步文件 2.准备自己的Git账号,并设置好项目(推荐使用国产的码云) 3.安装Git软件 (下载地址: 32-bit Git for Window ...
- 4364: [IOI2014]wall砖墙
4364: [IOI2014]wall砖墙 链接 分析: 线段树,维护一个最大值,一个最小值. 代码: #include<bits/stdc++.h> ],*p1 = buf,*p2 = ...
- 教你用Bootstrap开发漂亮的前端界面
Bootstrap介绍: Bootstrap 是最受欢迎的 HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. Bootstrap的特点: 一.预处理脚本:虽然可以直 ...
- Qt的index 用方法static_cast<CTableItem*>(index.internalPointer())取出来的值的成员都未初始化
mediaData = 0x01046380 {m_Deviceid={...} m_Title={...} m_Type={...} ...} 里面是这样的值,内存已经释放,但是没有remove: