数据结构
文章平均质量分 64
Jozky86
这个作者很懒,什么都没留下…
展开
-
CF1253F Cheap Robot
CF1253F Cheap Robot题意:给你一张 N 个点的带权无向连通图,其中结点 1,2,…,k 为充电中心。一个机器人在图中行走,假设机器人的电池容量为 c,则任何时刻,机器人的电量 x 都必须满足 c0≤x≤c。如果机器人沿着一条边权为 w 的边从结点 i 走到结点 j,它的电量会减少 w。机器人可以在到达某个充电中心时把电量充满。现在有 q 个询问,每次询问机器人要从 a 点到达 b 点,电池容量至少为多少,各个询问相互独立。保证 a 点和 b 点都是充电中心。题解:我和队友讨论这原创 2021-09-17 17:17:43 · 210 阅读 · 0 评论 -
cfF. Boring Queries
cfF. Boring Queries题意:n个数组a[],q个询问,每次询问区间[l,r]的lcm值题目要求强制在线1<=n<=1e51<=a<=2e51<=q<=1e5题解:添加链接描述添加链接描述添加链接描述我们一般求lcm都是直接通过ab/gcd(a,b)来做,但是现在要对所有lcm取模,且a,b都比较大,就不能直接通过这个计算了,我们开始挖掘lcm更深层的内涵。ab/gcd(a,b)的作用其实是对a,b的每个质因子的幂次都取了max,就是原创 2021-09-09 22:10:37 · 146 阅读 · 0 评论 -
P2633 Count on a tree
P2633 Count on a tree题意:给定一棵 n 个节点的树,每个点有一个权值。有 m 个询问,每次给你 u,v,k,你需要回答 u xor last 和 v 这两个节点间第 k 小的点权。其中last 是上一个询问的答案,定义其初始为 0,即第一个询问的 u 是明文。题解:很明显,主席树,而且强制在线(更是主席树)主席树是维护了一个类似前缀和的数据结构,当要查询线性区间[l,r]的第k小时,用第r个线段树减第l-1个线段树,得到的就是[l,r]之间的权值线段树(因为主席树维护的就是原创 2021-07-31 00:20:16 · 342 阅读 · 0 评论 -
[SDOI2014]旅行
[SDOI2014]旅行题意:n个城市,n-1条边,任意两个城市互通,每个城市有所信奉的宗教和城市评级,有四种指令:1.将城市x的居民改信为c教2.将城市x的评级调整为w3.统计x到y,路上所有的城市的评级综合(被记录的城市宗教必须与x和y相同,数据保证x和y宗教一致)4.统计x到y,路上的评级最大值(被记录的城市要求与上述一样)按照要求输出答案题解:参考文章为洛谷题解的第一篇(文章好像显示不可查看洛谷的题解第一页题目比较麻烦,因为有两个要维护的量,如果是一个还好说,对于树上维护那肯定原创 2021-04-25 21:32:27 · 206 阅读 · 0 评论 -
可持久化(一)
可持久化数据结构:可以保留每一个历史版本,若所有版本都既可以访问又可以修改,成为完全可持久化(可以回滚到某个历史版本)原创 2020-10-18 11:42:01 · 273 阅读 · 0 评论 -
AcWing 253. 普通平衡树
您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:插入数值x。删除数值x(若有多个相同的数,应只删除一个)。查询数值x的排名(若有多个相同的数,应输出最小的排名)。查询排名为x的数值。求数值x的前驱(前驱定义为小于x的最大的数)。求数值x的后继(后继定义为大于x的最小的数)。注意: 数据保证查询的结果一定存在。本题为平衡树基本操作的代码实现#include <cstdio>#include <cstring>#include <原创 2021-02-25 11:31:53 · 138 阅读 · 0 评论 -
CF 1529E. Trees of Tranquillity
CF 1529E. Trees of Tranquillity文章目录题意:题解:代码:线段树代码:利用set实现题意:有A1,A2两棵树,根是1,编号都是1~n,先制作图A3,如果两个点的x和y同时满足以下两个条件则连边,1.在树A中x是y的祖先或者y是x的祖先2.在树B中x和y谁都不是谁的祖先求A3的最大的团集的大小团:图G的一个完全子图题目A1和A2的输入方式为:a2,a3…an, ai是树的顶点i的父亲节点(1<= ai <i)题解:参考题解:文章1文章2我原创 2021-07-13 17:57:15 · 177 阅读 · 0 评论 -
Joy of Handcraft Gym - 102822J(线段树或差分)
Joy of Handcraft Gym - 102822J题意:每个灯有亮的周期和亮度,问1~m这段时间灯光最亮是多少题解:线段树维护区间最大值根据灯的周期向这段区间加亮度k,然后利用线段树维护区间最大值但是这样会超时,加个小优化就ac了(670ms)我们考虑,因为题目只要求最亮的一段,而且所有灯亮的时间起点是一样的,也就是如果两个灯周期一样,只有亮度高的才会有用,所有我们将所有灯按照亮度排序,每加完一组灯,记录该周期,后面再出现该周期的就不用加了代码:#include<bits/原创 2021-07-09 16:03:52 · 228 阅读 · 0 评论 -
I - Triple HDU - 5517
I - Triple HDU - 5517题意:由多重集A和多重集B,<a,b>∈A,<c,d,e>∈B,集合C=A * B{<a,c,d>|<a,b>∈A,<c,d,e>∈B and b=e}。现在需要你求出有多少个<a,c,d>满足:不存在属于C的一个三元组<u,v,w>使得,u>=a,v>=c,w>=d,<u,v,w>!=<a,c,d>题解:C=A*B,<a,b原创 2021-06-14 15:24:02 · 181 阅读 · 0 评论 -
Vases and Flowers HDU - 4614
Vases and Flowers HDU - 4614题意:一排空瓶子放花,操作1:从第x个瓶子开始放花,放y朵花,每个瓶子就一朵花,如果碰到已经有花的瓶子跳过这个瓶子,看下一个,当花没了,或者瓶子不够了结束,输入第一个放花的瓶子和最后一个放花的瓶子,如果一朵花都没放进瓶子输出一行字符’Can not put any one.’,操作2:把x到y之间的花清空,输出清空花的数量题解:操作2好做,操作1的起点终点如何确定?我们可以直接二分确定,先二分确定左端点,然后利用左端点,再二分确定右端点。代码原创 2021-06-03 00:10:10 · 134 阅读 · 0 评论 -
Transformation HDU - 4578
Transformation HDU - 4578题意:选定一段连续区间[l,r],有三种操作:操作1:对区间内值+c操作2:对区间内值*c操作3:将区间内的值都改为c操作4:查询区间内每个数p次方的和p=1,2,3题解:参考题解加强版线段树,对于本题需要三个标记,add的加法标记,mul的乘法标记,alt的修改标记,因为p=1,2,3,所以我们用sum1,sum2,sum3分别表示一次方和,平方和,立方和然后我们要确定标记的优先级,alt第一,mul第二,add第三,pushdown原创 2021-06-02 11:09:22 · 76 阅读 · 0 评论