![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
====数据结构====
35point5
这个作者很懒,什么都没留下…
展开
-
WZOJ 1302 tree(贪心)
题意: 给你一棵树,每个点有一个权值w[i]w[i]w[i],要求按拓扑序依次删除一个点,若一个点是第kkk个被删除,则需付出k∗w[i]k∗w[i]k*w[i]的代价,求删除所有点的最小总代价. 题解: 我们可以这样理解权值:把一个点延迟一个单位时间删除所需额外付出的代价,或是把一个点提前一个单位时间删除所减少的代价. 先不考虑拓扑序的限制,那么显然将所有点按权值从大到小排序再依次删除是...原创 2018-03-07 14:03:58 · 254 阅读 · 0 评论 -
CPOJ 2018.10.19提高测试 机器人退场 (exit)
只有一边有出口的可以忽略,求出每个点到左右两边的距离li,ril_i,r_ili,ri若一个点从左边出,那么lj&lt;lil_j&lt;l_ilj<li且rj&gt;rir_j&gt;r_irj>ri的点也必须从左边出,这个就是喜闻乐见的平面上dp的问题了,树状数组维护一下即可Code...原创 2018-10-21 20:26:59 · 138 阅读 · 0 评论 -
CPOJ 九校联考第二场day1 优美序列
题面从左到右枚举优美区间的右端点,假设当前枚举到iii,那么区间[k,i][k,i][k,i]为优美区间当且仅当k+num==ik+num==ik+num==i其中numnumnum为[k,i][k,i][k,i]中相差为111的数对(a,b)(a&lt;b)(a,b)(a&lt;b)(a,b)(a<b)的数对个数枚举到iii时我们将a[i]+1a[i]+1a[i...原创 2018-10-16 15:55:12 · 366 阅读 · 0 评论 -
CPOJ111 跳房子
题面原创 2018-09-16 20:48:42 · 375 阅读 · 0 评论 -
洛谷P3586 [POI2015]LOG
P3586 [POI2015]LOG 数组里每个数至多被减去sss次,所以把大于sss的数看做sss,然后再yy一下此时数组里所有数之和大于等于scscsc是可行的充要条件,然后离散化之后树状数组搞一搞就好了. Code...原创 2018-08-24 10:23:13 · 265 阅读 · 0 评论 -
BZOJ3413: 匹配
3413: 匹配 对主串建出后缀自动机与parent树,计算出每个节点最左边的r值(第一次出现的位置)与dfs序,建出n棵可持久化线段树,第i棵维护第一次出现位置小于等于i的parent树叶子节点个数,每个点在其dfs序的位置插入。询问时从0开始枚举询问串长度,考虑一个点now的right集合中第一次出现位置小于等于k的元素个数,那么就在第k棵线段树中询问parent树中now的子树。 Cod...原创 2018-08-20 09:40:47 · 328 阅读 · 0 评论 -
洛谷P4121 [WC2005]双面棋盘
洛谷P4121 [WC2005]双面棋盘 使用线段树维护。线段树每个节点维护该区间左右两列每个点的连通性,逐层合并节点即可。 Code原创 2018-08-14 18:23:56 · 197 阅读 · 0 评论 -
左偏树学习笔记
洛谷P3377 【模板】左偏树(可并堆) 设dpidpidp_i为点iii的子树中深度最大的点的深度,则左偏树满足性质dplson&gt;dprsondplson&gt;dprsondp_{lson}>dp_{rson},因此我们在合并两棵左偏树x,yx,yx,y(xxx应该在yyy上方)的时候,就递归地将xxx的右儿子和yyy合并,这样可以快速达到空节点.struct leftist_...原创 2018-08-10 21:22:45 · 79 阅读 · 0 评论 -
Link_Cut_Tree学习笔记
洛谷P2147 [SDOI2008]洞穴勘测 LCT用来维护若干棵无根树,使用伸展树来实现.每棵伸展树维护原树上的一条重链,一棵伸展树中的根节点(非原树的根)的父亲单向指向另一棵伸展树中的它原树中该重链起始点的父亲节点.struct lct{ data tr[maxn]; void init() { LL i; fo(i,0,n)...原创 2018-08-14 07:56:23 · 125 阅读 · 0 评论 -
[ZJOI2018]胖
题面 官方题解:原创 2018-04-26 21:42:31 · 364 阅读 · 0 评论 -
可持久化线段树(主席树)学习笔记
0x00写在前面在接触可持久化线段树前一直以为这是一个高大上的东西,非常复杂.但是在学习之后才发现它远比想象中容易,甚至比线段树还简单,所以学的时候不要有心理压力.0x01从一道题开始洛谷P3834 题意:给你一个序列,多次询问区间第k大的数是多少(序列长度与询问个数为1e5级别) 可以考虑这样一种算法:对于每个前缀[1,i][1,i][1,i]维护一颗权值线段树,每次询问[l...原创 2018-04-15 16:10:26 · 214 阅读 · 0 评论 -
Codeforces 713C Sonya and Problem Wihtout a Legend
题面 题意:给你一个序列,每次可以花费一个代价使一个数+1或者-1,求使其严格上升的最小代价. 题解: 首先考虑使其不下降的情况. 逐位考虑答案,假设前iii个已经不下降,而ai+1<aiai+1<aia_{i+1}ai−ai+1ai−ai+1a_i-a_{i+1}的代价使其不下降,那么新的ai和ai+1也就是a′i和a′i+1ai和ai+1也就是ai′和ai+1′a_i和a_...原创 2018-03-20 14:50:37 · 139 阅读 · 0 评论 -
洛谷4338 [ZJOI2018]历史
题面 官方题解:原创 2018-03-24 10:17:22 · 624 阅读 · 0 评论 -
WZOJ 1304 01背包加强版(完全背包单调队列优化)
题意: 同普通的01背包,要求输出背包容量为1…m时的最大价值 物品数≤106≤106\leq10^6 背包最大容量≤105≤105\leq10^5 每个物品体积≤300≤300\leq300 每个物品价值≤109≤109\leq10^9 题解: 先考虑普通的完全背包的优化方法: 设物品大小v[i]物品大小v[i]物品大小v[i] 枚举每种物品iii,并枚举当前容量jjj,搞个单...原创 2018-03-05 16:11:19 · 1010 阅读 · 0 评论 -
BZOJ 5132 [CodePlus2017年12月]火锅盛宴
题面 题解: 每种食物搞一个队列,维护该种食物最近烧熟的时间;锅里搞一个堆,维护最接近烧熟的食物. 同时锅外维护一个线段树,每烧熟一个食物就丢进线段树里,这棵线段树即可维护区间食物总数与是否存在烧熟的某种食物. Code...原创 2018-03-04 20:35:21 · 162 阅读 · 0 评论 -
LOJ 6038 「雅礼集训 2017 Day5」远行
题面显然用LCT维护(需要维护子树信息)每条链的每个节点维护从链的开头开始的最长路长度,和链末尾开始的最长路长度,对于虚儿子维护一个堆(堆里存的是lma)Code...原创 2018-11-16 21:20:58 · 279 阅读 · 0 评论