随笔分类 -  高级数据结构

摘要:Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排 序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2 阅读全文
posted @ 2017-04-26 08:30 karles~ 阅读(459) 评论(2) 推荐(2)
摘要:Description 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn]。现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置。换句话说,就是使得存在一个 x,使得对于每一个被选中的区间 [li,ri],都有 li≤x≤ri。 对于一个合法的选取方案,它的花 阅读全文
posted @ 2017-04-26 07:39 karles~ 阅读(419) 评论(0) 推荐(0)
摘要:Description 一个简单的网络系统可以被描述成一棵无根树。每个节点为一个服务器。连接服务器与服务器的数据线则看做一条树边。两个服务器进行数据的交互时,数据会经过连接这两个服务器的路径上的所有服务器(包括这两个服务器自身)。由于这条路径是唯一的,当路径上的某个服务器出现故障,无法正常运行时,数 阅读全文
posted @ 2017-04-26 07:37 karles~ 阅读(368) 评论(0) 推荐(0)
摘要:Description 有N个节点,标号从1到N,这N个节点一开始相互不连通。第i个节点的初始权值为a[i],接下来有如下一些操作: U x y: 加一条边,连接第x个节点和第y个节点 A1 x v: 将第x个节点的权值增加v A2 x v: 将第x个节点所在的连通块的所有节点的权值都增加v A3  阅读全文
posted @ 2017-04-21 22:21 karles~ 阅读(211) 评论(0) 推荐(0)
摘要:/* 将原式化简,会发现最后只需要维护四个东西,分别是:Σx,Σy,Σx*y,Σx*x。 区间加的时候x和y都很容易, Σx*y=Σ(x+S)*(y+T)=Σx*y+S*Σy+T*Σx+len*S*T Σx*x=Σ(x+S)*(x+S)=Σx*x+2*S*Σx+len*S*S 区间修改的时候 Σ(i+S)*(i+T)=Σi*i+(S+T)*Σ... 阅读全文
posted @ 2017-04-13 21:19 karles~ 阅读(242) 评论(0) 推荐(0)
摘要:我们定义f(x),表示x与fa[x]的颜色是否相同,相同为0,不同为1,令 f(1)=1。g(x)表示x到root路径上的f的和。然后考虑怎么维护g(x)。 对于操作1,用LCT中的access操作来维护。 对于操作2,直接线段树查询。 对于操作3,维护一个最大值,然后区间查询最大值就可以了。 阅读全文
posted @ 2017-04-12 22:24 karles~ 阅读(206) 评论(0) 推荐(0)
摘要:Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内的所有数全部取反, 阅读全文
posted @ 2017-03-30 21:09 karles~ 阅读(313) 评论(0) 推荐(0)
摘要:Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵、乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co rmen 的文章。粟粟家中有一个 R行C 列的巨型书架,书架的每一个位置都摆有一本书,上数第i 行、左数第j 列 摆放的书有Pi,j页厚。粟粟每天除了读书之 阅读全文
posted @ 2017-03-24 21:55 karles~ 阅读(255) 评论(0) 推荐(0)
摘要:Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k), 阅读全文
posted @ 2017-02-26 22:17 karles~ 阅读(193) 评论(0) 推荐(0)
摘要:Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有500 000个数,数列中任何一个数字均在[ 阅读全文
posted @ 2017-02-26 22:16 karles~ 阅读(377) 评论(0) 推荐(0)
摘要:Description 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗。由于时间紧迫,SHY作完诗 之后还要虐OI,于是SHY找来一篇长度为N的文章,阅读M次,每次只阅读其中连续的一段[l,r],从这一段中选出一 些汉字构成诗。因为SHY喜欢对偶,所以SHY 阅读全文
posted @ 2017-02-23 22:14 karles~ 阅读(211) 评论(0) 推荐(0)
摘要:题意: 给出一颗树,有4种操作: 1、如果x和y不在同一棵树上则在xy连边 2、如果x和y在同一棵树上并且x!=y则把x换为树根并把y和y的父亲分离 3、如果x和y在同一棵树上则x到y的路径上所有的点权值+w 4、如果x和y在同一棵树上则输出x到y路径上的最大值 阅读全文
posted @ 2017-02-18 21:59 karles~ 阅读(233) 评论(0) 推荐(0)
摘要:Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。 魔法森林中居住了一些妖怪。 阅读全文
posted @ 2017-02-17 22:20 karles~ 阅读(278) 评论(0) 推荐(0)
摘要:Description 给出n个结点以及每个点初始时对应的权值wi。起始时点与点之间没有连边。有3类操作: 1、bridge A B:询问结点A与结点B是否连通。如果是则输出“no”。否则输出“yes”,并且在结点A和结点B之间连一条无向边。 2、penguins A X:将结点A对应的权值wA修改 阅读全文
posted @ 2017-02-17 22:19 karles~ 阅读(288) 评论(0) 推荐(0)
摘要:Description Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的ap 阅读全文
posted @ 2017-02-16 22:22 karles~ 阅读(408) 评论(0) 推荐(0)
摘要:题意:给一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路径上的所有点权值加上K D C1 C2 K:把C1与C2的路径上的所有点权值减去K Q C:查询节点编号为C的权值 阅读全文
posted @ 2017-02-16 22:21 karles~ 阅读(195) 评论(0) 推荐(0)
摘要:Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 给定一 阅读全文
posted @ 2017-02-16 22:21 karles~ 阅读(257) 评论(0) 推荐(0)
摘要:Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区 阅读全文
posted @ 2017-02-15 21:54 karles~ 阅读(252) 评论(0) 推荐(0)
摘要:题目描述 Description 给出N个数,要求做M次区间翻转(如1 2 3 4变成4 3 2 1),求出最后的序列 题目描述 Description 给出N个数,要求做M次区间翻转(如1 2 3 4变成4 3 2 1),求出最后的序列 给出N个数,要求做M次区间翻转(如1 2 3 4变成4 3 阅读全文
posted @ 2017-02-15 21:52 karles~ 阅读(313) 评论(0) 推荐(0)
摘要:Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6. 求x 阅读全文
posted @ 2017-02-15 21:50 karles~ 阅读(253) 评论(1) 推荐(0)