上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 30 下一页
摘要: "洛谷" "Codeforces" 看到题解那么少就来发一篇吧…… 思路 看完题目一脸懵逼,感觉无从下手。 莫名其妙地想到笛卡尔树,但笛卡尔树好像并没有太大作用。 考虑把笛卡尔树改一下:每个点的父亲设为它的右边第一个大于它的位置。 这时突然发现一个很好的性质:搞答案时每次从右边加入一个点$x$时,以 阅读全文
posted @ 2019-03-09 19:38 p_b_p_b 阅读(449) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 先考虑两点如何使他们不连通。 显然路径上所有的割点都满足条件。 多个点呢?也是这样的。 于是可以想到圆方树。一个点集的答案就是它的虚树里圆点个数减去点集大小。 可以把点按dfs序排序,然后统计相邻两点距离和首尾两点距离之和。 为了防止一个点被统计多次,把点权改为边权,再额外算上lc 阅读全文
posted @ 2019-03-09 15:54 p_b_p_b 阅读(224) 评论(0) 推荐(0) 编辑
摘要: "洛谷" "Codeforces" 思路 首先要莫名其妙地想到圆方树。 建起圆方树后,令方点的权值是双联通分量中的最小值,那么$(u,v)$的答案就是路径$(u,v)$上的最小值。 然而这题还有修改,可以在每个方点维护一个$multiset$以支持。 但如果每次修改都暴力修改相邻的方点权值显然要挂, 阅读全文
posted @ 2019-03-09 15:46 p_b_p_b 阅读(220) 评论(0) 推荐(0) 编辑
摘要: "传送门" 又学会了一个新东西好开心呢~ 思路 显然,假如枚举了起始点$x$和终止点$y$,中转点就必须在它们之间的简单路径上。 不知为何想到了圆方树,可以发现,如果把方点的权值记为双联通分量的大小,圆点权值记为 1,那么$x \rightarrow y$的答案就是树上$x\rightarrow y 阅读全文
posted @ 2019-03-09 15:38 p_b_p_b 阅读(187) 评论(0) 推荐(0) 编辑
摘要: "洛谷" "Codeforces" 思路 看到树上路径的统计,容易想到点分治。 虽然只有一个限制,但这个限制比较麻烦,我们把它拆成两个。 设黑边有$a$条,白边有$b$条,那么有 $$ 2a\geq b\\ 2b\geq a $$ 合并两条边时,设原有的是$(a,b)$,要加入的是$(A,B)$,那 阅读全文
posted @ 2019-03-09 11:15 p_b_p_b 阅读(262) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 这思路好妙啊! 首先很多人都会想到推式子之后树链剖分+线段树,但这样不够优美,不喜欢。 脑洞大开想到这样一个式子: $$ \sum_{x} sum_x(All sum_x) $$ 其中$sum_x$表示$x$子树和,$All$表示所有点的权值和。 发现不管哪个点为根,只要每个点的权 阅读全文
posted @ 2019-03-08 21:23 p_b_p_b 阅读(219) 评论(0) 推荐(0) 编辑
摘要: "洛谷" "Codeforces" 这是一个非正解,被正解暴踩,但它还是过了。 思路 首先很容易想到DP。 设$dp_{x,i}$表示$x$子树全部被覆盖,而且向上恰好延伸到$dep=i$的位置,的最小费用。 转移方程非常显然:每次把$dp_x$和$dp_v$合并时$dp_{x,i}+=\min\{ 阅读全文
posted @ 2019-03-08 19:01 p_b_p_b 阅读(523) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 相信很多人像我一样想直接搞Matrix Tree定理,而且还过了样例,然后交上去一分没有。 但不管怎样这还是对我们的思路有一定启发的。 用Matrix Tree定理搞,求出的答案是 $$ t=\sum_{E\;is\;a\;tree} \prod_{e\in E} W_e $$ 其 阅读全文
posted @ 2019-03-07 22:20 p_b_p_b 阅读(173) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 首先看到生成树计数,想到Matrix Tree定理。 然而,这题显然是不能Matrix Tree定理硬上的,因为还有每个公司只能建一条路的限制。这个限制比较恶心,尝试去除它。 怎么除掉它呢? 容斥! 每当有恶心的限制时,用容斥去除它,也许这是套路? 枚举有哪几所公司承保了所有道路的 阅读全文
posted @ 2019-03-07 22:05 p_b_p_b 阅读(141) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 首先,我们要脑洞大开想到点分治。 注意到每个点都要输出对应的$ans$,所以想到在点分树上跳,得到答案。 一个点答案的贡献要分为好几个部分。 第一个 这是最容易统计的部分。你需要得到点分树上自己的子树对自己的贡献。 显然一个dfs即可搞定。 第二个 假设当前要求的点是$x$,枚举它 阅读全文
posted @ 2019-03-06 13:52 p_b_p_b 阅读(230) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 30 下一页