P3850-[TJOI2007]书架【Splay】

正题

题目链接:https://www.luogu.com.cn/problem/P3850


题目大意

一个书架上有nnn本书,进行mmm次插入操作,然后qqq次询问一个位置上的书。


解题思路

SplaySplaySplay进行插入操作,然后直接查询即可


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=2e5;
int n,m,root;char s[N][15];
int tot,t[N][2],siz[N],fa[N];
void PushUp(int x)
{siz[x]=siz[t[x][0]]+siz[t[x][1]]+1;return;}
bool Direct(int x)
{return t[fa[x]][1]==x;}
void Connect(int x,int y,int son)
{t[x][son]=y;fa[y]=x;return;}
void Rotate(int x){int y=fa[x],z=fa[fa[x]];int xs=Direct(x),ys=Direct(y);int k=t[x][xs^1];Connect(y,k,xs);Connect(x,y,xs^1);Connect(z,x,ys);PushUp(y);PushUp(x);return;
}
void Splay(int x,int f){while(fa[x]!=f){int up=fa[x];if(fa[up]==f)Rotate(x);else if(Direct(x)==Direct(up))Rotate(up),Rotate(x);else Rotate(x),Rotate(x);}return;
}
int Find(int x,int k){if(siz[t[x][0]]>=k)return Find(t[x][0],k);if(siz[t[x][0]]+1==k)return x;return Find(t[x][1],k-siz[t[x][0]]-1);
}
int main()
{scanf("%d",&n);siz[1]=1;for(int i=1;i<=n;i++){scanf("%s",s[i+1]);fa[i]=i+1;t[i+1][0]=i;PushUp(i+1);}fa[n+1]=n+2;t[n+2][0]=n+1;PushUp(n+2);root=tot=n+2;scanf("%d",&m);while(m--){scanf("%s",s[++tot]);int l;scanf("%d",&l);l++;int x=Find(root,l),y=Find(root,l+1);Splay(x,0);Splay(y,x);t[y][0]=tot;fa[tot]=y;siz[tot]=1;Splay(tot,0);root=tot;}scanf("%d",&m);while(m--){int l;scanf("%d",&l);l++;int x=Find(root,l),y=Find(root,l+2);Splay(x,0);Splay(y,x);root=x;printf("%s\n",s[t[y][0]]);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【并查集】家族 (ssl 1896)

家族 ssl 1896 题目大意&#xff1a; 合并一些集合&#xff0c;然后判断某两个点是否在同一个集合内 原题&#xff1a; 题目描述 若某个家族人员过于庞大&#xff0c;要判断两个是否是亲戚&#xff0c;确实还很不容易&#xff0c;现在给出某个亲戚关系图&#xff0c;求任…

模式识别作业

模式识别作业 1.说明判别分类器(如logistic回归)与上述特定类别的高斯朴素贝叶斯分类器之间的关系正是logistic回归所采用的形式。 经过第2问更加普遍的推导过程&#xff1a; 对应参数为&#xff1a; 二次项&#xff1a; v[σ112−σ1022σ112σ102,...,σD12−σD022σD12…

Identity Server 4 - Hybrid Flow - Claims

前一篇 Identity Server 4 - Hybrid Flow - MVC客户端身份验证: https://www.cnblogs.com/cgzl/p/9253667.htmlClaims我不知道怎么样翻译这个词比较好, 所以我一般就不翻译了.在前一篇文章里, MVC客户端配置身份认证的时候有这么一句话(Startup的ConfigureServices):JwtSecurit…

图像处理作业第7次

图像处理作业第7次 1.请根据课本中Z变换的定义&#xff0c;证明如下结论。 (1)若x(n)x(n)x(n)的ZZZ变换为X(z)X(z)X(z)&#xff0c;则(−1)nx(n)(-1)^nx(n)(−1)nx(n)的ZZZ变换为X(−z)X(-z)X(−z) 根据ZZZ变换的定义 X(z)∑x(n)z−n,∑(−1)nx(n)z−n∑x(n)(−z)−nX(−z)X(z…

【prim】【最小生成树】最优布线问题(ssl 1612)

最优布线问题 ssl 1612 题目大意&#xff1a; 求最小生成树 原题&#xff1a; 题目描述 学校有n台计算机&#xff0c;为了方便数据传输&#xff0c;现要将它们用数据线连接起来。两台计算机被连接是指它们之间有数据线连接。由于计算机所处的位置不同&#xff0c;因此不同…

P5304-[GXOI/GZOI2019]旅行者【最短路】

正题 题目链接:https://www.luogu.com.cn/problem/P5304 题目大意 nnn个点mmm条边的一张有向图&#xff0c;有kkk个关键点&#xff0c;求距离最短的一对关键点。 解题思路 我们能够O(nlog⁡n)O(n\log n)O(nlogn)的进行一个起点或多个起点同时的最短路&#xff0c;但是这题显然…

微软宣布ASP.NET Core 2.0正式支持OData标准

近日&#xff0c;OData 团队在微软开发者博客上宣布&#xff0c;ASP.NET Core 2.0 已正式支持 OData 标准&#xff0c;开发者现在可通过包管理器 NuGet 来获取 Microsoft.AspNetCore.OData 包。此软件包包含在使用 ASP.NET Core MVC 时创建 OData v4.0 端点以及支持 Web API 的…

P2710-数列【Splay】

正题 题目链接:https://www.luogu.com.cn/problem/P2710 题目大意 nnn个数&#xff0c;mmm次操作要求支持 插入若干个数删除某个位置开始的连续若干个数翻转一个区间修改一个区间为ttt求区间和输出一个位置的值询问一个区间的最大子段和 解题思路 用SplaySplaySplay维护&…

【并查集】【图论】【最小生成树】剑鱼行动(ssl 1618)

剑鱼行动 ssl 1618 题目大意&#xff1a; 求一个平面直角坐标系中的最小生成树 原题&#xff1a; 题目描述 给出N个点的坐标&#xff0c;对它们建立一个最小生成树&#xff0c;代价就是连接它们的路径的长度&#xff0c;现要求总长度最小。N的值在100以内&#xff0c;坐标…

图像处理作业4

图像处理作业4 1. 第二版课本习题4.21 本质没有区别&#xff0c;只将图片放置在中心&#xff0c;而周围填充0的个数不变时&#xff0c;不会影响结果。因为本质都是进行了周期延拓&#xff0c;使得尾部的信息不会被丢弃掉。相当于滤波前将图像进行了平移。需要注意的是&#x…

[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

园子里关于ASP.NET Core Web API的教程很多&#xff0c;但大多都是使用EFMysql或者EFMSSQL的文章。甚至关于ASP.NET Core Web API中使用DapperMysql组合的文章都很少&#xff0c;更别提OracelDapper组合的文章了&#xff0c;那么今天就带着大家一起翻译一篇国外大牛写的关于ASP…

一个c#开发的web绘流系统

本项目为Web版流程图绘图&#xff0c;兼容IE、FF、Chrome等各主流浏览器&#xff0c;提供了各类基础图形&#xff0c;至于如何应用及用来做什么就随各位了&#xff0c;常规的流程图及逻辑辅助、工作流等皆可胜任。本系统虽为开源项目&#xff0c;然精心调配开发测试&#xff0c…

【二进制】17倍

17倍 题目大意&#xff1a; 有一个二进制数&#xff0c;求它的17倍 原题: 题目描述&#xff1a; 在了解做软件开发可能赚很多的钱之后&#xff0c;农夫约翰也开了一家小的软件公司为客户写程序。约翰的第一个任务对他来说看起来相当简单&#xff1a;输入一个数N&#xff0…

图像处理作业第五次

第5次图像处理作业 1. 复习理解课本中最佳陷波滤波器进行图像恢复的过程&#xff0c;请推导出w(x,y)最优解的计算过程. 根据公式: σ21(2a1)(2b1)∑∑[g−wη−(gˉ−wηˉ)]2\sigma ^2 \frac{1}{(2a1)(2b1)}\sum\sum[g-w\eta - (\bar g-w\bar\eta)]^2σ2(2a1)(2b1)1​∑∑[g…

2020牛客国庆集训派对day8G-Shuffle Cards【Splay】

正题 题目链接:https://ac.nowcoder.com/acm/contest/7865/G 题目大意 nnn个数从1∼n1\sim n1∼n&#xff0c;mmm次拿出其中一段放到头部&#xff0c;求最终序列。 解题思路 用SplaySplaySplay拿出一段区间然后丢到头部就好了。 时间复杂度O(nlog⁡n)O(n\log n)O(nlogn) cod…

将系统分解为微服务的策略

几年前&#xff0c;Vladik Khononov和他的团队决定开始使用微服务&#xff0c;但是几个月后他们发现自己陷入了巨大的混乱之中。他在最近于伦敦Skills Matter举行的DDD eXchange 2018会议上指出&#xff0c;造成这一现象的原因在于&#xff0c;他们只专注于采用酷炫的新技术&am…

图像处理作业 第8次

图像处理作业 第8次 7.11 说明尺度函数ϕ(x)1,0.25≤x<0.75\phi(x)1 ,0.25 \le x\lt 0.75ϕ(x)1,0.25≤x<0.75并未满足多分辨率分析的第二个要求. ϕ1,0(x)2ϕ(2x)1\phi_{1,0}(x)\sqrt 2 \phi(2x)1ϕ1,0​(x)2​ϕ(2x)1 当且仅当满足0.125≤x<0.3750.125 \le x\lt 0…

【dfs】马蹄印

马蹄印 题目大意&#xff1a; 有一个只含括号的图&#xff0c;要你走一条路&#xff08;从左上角出发&#xff09;&#xff0c;使你走的路上的括号加在一起是先k个左括号再k个右括号组成的&#xff0c;要求k最大 原题&#xff1a; 题目描述&#xff1a; 虽然当奶牛贝里斯找…

P4852-yyf hates choukapai【单调队列优化dp】

正题 题目链接:https://www.luogu.com.cn/problem/P4852 题目大意 给出n,m,c,dn,m,c,dn,m,c,d&#xff0c;有n∗cmn*cmn∗cm张卡牌。进行nnn次连抽mmm次单抽&#xff0c;连抽连续ccc张卡牌会获得第一张卡牌的欧气值&#xff0c;单抽可以获得抽到卡牌的欧气值。不能连续进行dd…

P4317-花神的数论题【组合数学】

正题 题目链接:https://www.luogu.com.cn/problem/P4317 题目大意 定义sum(i)sum(i)sum(i)表示iii二进制下111的个数 求∏i1nsum(i)\prod_{i1}^nsum(i)i1∏n​sum(i) 解题思路 考虑计算有iii个111的有多少个数字。 对于nnn的每一个111&#xff0c;我们可以知道如果这一位为…