摘要: \(A\) $10pts$ 暴力即可。 $50pts$ 发现这就是一条链的情况,也就相当于本题搬到了序列上。 根据后缀最大值的定义,不难发现序列上的后缀最大值的权值是递减的,而且后缀最大值的位置是递增的,这启发我们用单调栈维护所有后缀最大值。 具体的,单调栈内按权值递减的维护元素,当加进当前位置的元 阅读全文
posted @ 2020-09-02 20:56 Tian-Xing 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 数据结构 单调栈 $1.1$ 可撤销回退单调栈,插入元素时二分插入,记录栈顶和栈内信息丢进另外一个栈,回退时$O(1)$撤销。 NOI2014 购票 线段树合并 $1.2$ 两颗线段树在合并的时候可以顺便维护一些信息。 [PKUWC2018]Minimax [POI2011]ROT-Tree Rot 阅读全文
posted @ 2020-08-25 07:35 Tian-Xing 阅读(811) 评论(1) 推荐(2) 编辑
摘要: \(About\) 感觉做题思维很差,很多题算法都会但就是想不到(捂脸。 滚来做$CF$题锻炼思维力。 \(Codeforces\ Round\ \#665\ (Div.\ 2)\) \(A\) 分两种情况讨论。 若$k >= n$,那么将$A$移动到$(k, 0)$为最优。 若$k < n$,解方 阅读全文
posted @ 2020-08-24 18:17 Tian-Xing 阅读(348) 评论(0) 推荐(0) 编辑
摘要: Description 传送门 Solution 每次选择花费最大的地方切,然后按照题意$O(n)$模拟即可。 证明如下: $1.$若两次切割都是横向或竖向,且花费小的比花费大的先切割。 设花费小的切割的时候需要切割$a$次,花费大的切割的时候需要切割$b$次,因为中间可能切割了任意次另外一个方向, 阅读全文
posted @ 2020-08-04 21:58 Tian-Xing 阅读(66) 评论(0) 推荐(0) 编辑
摘要: Description 传送门 Solution 其实这题是没有必要使用可持久化$Trie$的。 首先建立一颗线段树,每个节点维护它所代表的那些商店的商品的标价所构成的$Trie$。 这样如果没有时间上的限制,我们可以将每次的询问拆成对于$log(n)$个线段树上的节点的询问,每次在$Trie$上花 阅读全文
posted @ 2020-07-30 15:51 Tian-Xing 阅读(70) 评论(0) 推荐(0) 编辑
摘要: > $\_ctz$写日记写的很嗨,感觉挺爽,小蒟蒻也来水一水,显然并没有人看见(希望)。 上面是以前对于日记的看法,现在大概就是没事想发泄情绪的时候瞎写点。($2022.12.22$) $$5.27$$ 找$Ldx$要了昨天托她买的指甲刀,然后发现塑料包装袋没法撕开?!感谢$Wzzr$大爷付出一支笔 阅读全文
posted @ 2020-07-30 15:48 Tian-Xing 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 通用 \(link0.1\) \(link0.2\) 数据结构 \(link1.1\) 树状数组 \(link2.1\) 线段树 \(link2.2\) 虚树 \(link2.3\) \(Lct\) \(link2.4.1\) \(link2.4.2\) 动态规划 矩阵优化 \(link3.1\) 阅读全文
posted @ 2020-07-29 15:58 Tian-Xing 阅读(141) 评论(0) 推荐(0) 编辑
摘要: Description 传送门 Solution 注意到$DFS$的时候每次选择一个$DFS$树的子树后必然会走所有子树中的节点,所以原问题变成所有子树内的顺序乘子树外的顺序。 这样可以将还没有经过的节点状压,进行记忆化搜索。$DFS$树的子树个数就是去掉当前点之后的连通块个数,用并查集维护即可。 阅读全文
posted @ 2020-07-07 11:38 Tian-Xing 阅读(242) 评论(0) 推荐(1) 编辑
摘要: 树形$dp$ P6419 [COCI2014-2015#1] Kamp 换根$dp$,先以$1$为根,记$f_x$表示$x$的子树中的关键点到$x$的距离之和,$dis_{x, 1}$和$dis_{x, 0}$表示$x$的子树中关键点到$x$的最远和次远距离,注意不能在$x$的同一个儿子的子树中。 阅读全文
posted @ 2020-07-06 21:58 Tian-Xing 阅读(185) 评论(0) 推荐(0) 编辑
摘要: Description 传送门 Solution 设点$i$到根的第一条边的颜色为$col_i$,根到点$i$的路径上的颜色和是$sum_i$,经过观察发现$col_i$相同的不在同一个子树里的两个点之间的简单路径拼接后的答案是$sum_i + sum_j - w_$。这是因为中间的一段会被重复算两 阅读全文
posted @ 2020-06-17 15:54 Tian-Xing 阅读(108) 评论(0) 推荐(0) 编辑