
模板题
文章平均质量分 51
XHRlyb
这个作者很懒,什么都没留下…
展开
-
树链剖分+线段树
之前就学过树链剖分的原理,只会树链剖分LCA,今天做了一道“树链剖分+数据结构”的题,虽然很简单,但可以当模板用一用,粘到这里。树链剖分简单描述(可能不大对):第一步就是划分轻重边,按每一棵子树的大小,与形成子树最大的一个子节点是重边,其余为轻边,然后就得到了轻重链。 之后就可以用数据结构维护一些东西了,可以是点也可以是边。对节点 x 到 y 间的路径进行操作时,分别找到 x 和 y 所在链(原创 2017-08-26 19:48:04 · 715 阅读 · 0 评论 -
BZOJ2038 小z的袜子(分块版莫队)
题目链接:BZOJ2038 第一次看莫队算法,写写感受。 看的第一篇博客是用平面哈夫曼距离最小生成树写的,看懂了原理,但不会写代码。后来看到了一个更简单的替代品分块,时间复杂度相近,为 n*sqrt(n) 。原理不难理解,基本思路就是通过改变处理询问顺序,降低复杂度。分块版的是按询问的左端点所在块的编号为第一关键字,右端点为第二关键字,排序之后直接暴力就好了。复杂度分析(每次修改复杂度为 O(1原创 2017-08-27 08:41:38 · 365 阅读 · 0 评论 -
codeforces 757F Team Rocket Rises Again(最短路+支配树)
今天刚刚看了支配树,然而恕我太弱并没有看明白Lengauer-Tarjan算法,比较懵QAQ……不过我倒是学会了在DAG上构建支配树,就贴一道简单题过来吧O(∩_∩)O。如何在DAG上求支配树? 有向无环图(DAG)里我们可以按照拓扑序构建支配树。 假设当前我们构造到拓扑序中第x个节点编号为v,那么此时支配树中已经有拓扑序第1~x-1个节点了。考虑所有能够直接到达v的节点,对于这些节原创 2017-12-13 14:44:52 · 596 阅读 · 0 评论 -
BZOJ 4006 管道连接(最小斯坦纳树+状压DP)
题目链接:BZOJ 4006题目大意:n个点,其中p (p<=10) 个重要的点,m条无向边。p个重要点分成几类,求同类重要点互相联通的最小花费。题解:说说我的理解,不一定对。只需要某些点联通,想到最小斯坦纳树;看到 p<=10,想到状压。令dp[i][status]表示i点为(某棵)最小斯坦纳树的根,status表示的点都依照题意同颜色建立起通道的最小花费,最终答案 max { dp[i][2原创 2017-12-21 20:22:05 · 484 阅读 · 0 评论 -
BZOJ 3938 Robot(超哥线段树)
题目大意:一条数轴上有n个机器人,对其进行m次操作。操作t_i commond k_i x_i (1≤k_i≤n)表示ti时刻将第ki个机器人的速度变为正方向上xi格每秒;操作t_i query则是询问ti时刻离原点最远的机器人到原点的距离(t1≤t2≤t3≤…≤tm,若同一时间发生多次操作,则按读入顺序依次执行)题目链接:BZOJ3938题解:以时间为x轴,位置坐标为y轴,commond...原创 2018-03-01 17:18:01 · 458 阅读 · 1 评论 -
BZOJ 1176 Mokia(CDQ分治)
题目链接:BZOJ 1176题目大意:维护一个W*W的矩阵,初始值均为S。每次操作可以增加某格子的权值或询问某子矩阵的总权值(修改操作数M<=160000,询问数Q<=10000,W<=2000000)。题解:CDQ分治。查询操作可以分成4个(1,1)到(x,y)的子矩形的权值和查询,再加加减减。先把操作按x坐标为第一关键字,y为第二关键字排序,然后按操作的先后分治。分治的每一层里,计算左边的修改对原创 2018-03-30 17:09:42 · 292 阅读 · 0 评论 -
BZOJ 1004 Card(Burnside)+BZOJ 1815 有色图(Polya)
先来写一写什么是置换群和Burside、Polya。关于置换群、Burnside和Polya一、一些概念1、群:对于一个集合G={a,b,c,…}和G上的二元运算*,满足①封闭性②结合律③单位元④逆元,则称:集合G在运算’*’之下是一个群 2、置换群:置换群的元素是置换,运算是置换的连接3、ZkZkZ_k (K不动置换类):设G是1~n的置换群,若K是1~n中的某个元素...原创 2018-06-29 21:42:19 · 472 阅读 · 0 评论