随笔分类 -  题解

主要发布一些洛谷或codeforces上的题解
摘要:思路: $\quad$说实话,第一眼看这题想到的是线段树,但无奈 $1<=n<=10^ 9$ ,离散化有点复杂,动态开点又不会,所以使用了一种离线做法,跑的还贼快(大雾 $\quad$现将所有操作存起来, \(dir\) 表示方向, $1$ 为上, $0$ 为左,然后按 \(x\) 为第一关键字, 阅读全文
posted @ 2020-11-23 22:07 Farkas_W 阅读(136) 评论(0) 推荐(0)
摘要:思路: $\quad$这是一道数学题,分别计算每一个点分别作个位,十位... \(n-k\) 位的贡献即可(不可做这一数位的数的这一数位的贡献为 $0$ ),如字符串 $9876543210$ 中 $0$ 只可以作个位, $1$ 只可以作个位和十位,其他数位的贡献为 $0$ ,所以可以得到 \(an 阅读全文
posted @ 2020-11-23 22:05 Farkas_W 阅读(138) 评论(0) 推荐(0)
摘要:思路: $\quad$只需要以题目给定的 \(u\) 为起点跑一遍 \(Dijkstra\) 最短路即可,每次记录每个点的前驱(即到达这个点的边),注意有多个可以选择的边中选择边权最小的,感觉很像一个最小生成树,最后记得要记录树上的边权并排序再输出,起点 \(u\) 是没有前驱的,所以要从 $2$ 阅读全文
posted @ 2020-11-23 22:04 Farkas_W 阅读(91) 评论(0) 推荐(0)
摘要:思路: $\quad$对于此题考虑使用线段树维护,因为有环,所以断环为链,数组开两倍,另外距离换成坐标(距离的前缀和),假设最后求的两棵树分别为 \(x\) , \(y\) \((dis_x<dis_y)\),那么答案就是 $2\times (h_x+h_y)+dis_y-dis_x$ ,就是 \( 阅读全文
posted @ 2020-11-23 22:03 Farkas_W 阅读(89) 评论(0) 推荐(0)
摘要:\(\text{关于本题}\) \(\quad\) \(Dsu\) \(on\) $Tree$模板题,没有做过的可以做做CF600E Lomsat gelral,也是一道模板题,下面就简单讲讲树上启发式合并 (\(DSU\) \(on\) \(Tree\))算法,如果有不懂的可以提出来。 $\qua 阅读全文
posted @ 2020-11-23 22:02 Farkas_W 阅读(128) 评论(0) 推荐(0)
摘要:\(\text{CF246E Blood Cousins Return}\) $\quad$题目链接:CF246E Blood Cousins Return(洛谷的链接) $\quad$一道 \(Dcu\) 模板题(下面会讲),只需要用一个 \(map\) 数组来维护这个名字(字符串)是否出现过,用 阅读全文
posted @ 2020-11-23 22:01 Farkas_W 阅读(110) 评论(0) 推荐(0)
摘要:\(\text{CF375D Tree and Queries}\) $\quad$题目链接:CF375D Tree and Queries(洛谷的链接) 思路 $\quad$标准做法是动态规划,但看到 $4.5s$ 的时限,似乎可以树上启发式合并水过去,只要用 \(num_i\) 和 \(cnt_ 阅读全文
posted @ 2020-11-23 22:00 Farkas_W 阅读(111) 评论(0) 推荐(0)
摘要:\(\text{CF1009F Dominant Indices}\) $\quad$题目链接:CF1009F Dominant Indices(洛谷的链接) $\quad$没有修改操作,询问子树,这就是一道 Dsu 板子题,这个算法又叫树上启发式合并(下面会细讲)。 $\quad$关于此题,用 \ 阅读全文
posted @ 2020-11-23 21:59 Farkas_W 阅读(272) 评论(0) 推荐(0)
摘要:\(\text{CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths}\) $\quad$题目链接:CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh p 阅读全文
posted @ 2020-11-23 21:58 Farkas_W 阅读(102) 评论(0) 推荐(0)
摘要:\(\text{前言}\) $\quad$可以看看我的一篇blog关于树链剖分"换根操作"笔记(内容都差不多) $\quad$另外洛谷上还有一道关于换根操作的题目:P3979 【遥远的国度】(我的题解) \(\text{关于题目要求的操作}\) $\quad$其实可以发现在一棵树中,只有父亲(祖先) 阅读全文
posted @ 2020-11-04 21:39 Farkas_W 阅读(119) 评论(0) 推荐(0)
摘要:\(\text{前言}\) $\quad$可以看看我的一篇blog关于树链剖分"换根操作"笔记(内容都差不多) $\quad$另外洛谷上还有一道关于换根操作的题目:CF916E Jamie and Tree(我的题解) \(\text{关于题目要求的操作}\) 换根,直接换即可 路径修改,就和普通树 阅读全文
posted @ 2020-11-04 21:21 Farkas_W 阅读(156) 评论(0) 推荐(0)
摘要:\(\text{关于题意}\) $\quad$一道很简单毒瘤的树链剖分练习题,只有五种操作,除了码量较大,就没有什么其他特点了,是一道很好的练习题。可以锻炼$OIer$找错能力,我调了一个小时, $WA$了一次 \(\text{关于边权转点权}\) $\quad$有几道题也是树链剖分边权转点权,可以 阅读全文
posted @ 2020-11-04 10:22 Farkas_W 阅读(162) 评论(0) 推荐(0)
摘要:\(\text{题目大意}\) $\quad$给出一个有向图,求所有点到起点的距离之和,起点到所有点的距离之和的和。(起点就是$1$)有点绕口 $\quad$虽然$SPFA$已经死了,但还是值得一用的,对于这道题考虑使用$SPFA$求最短路。 $\quad$根据题意,我们可以开二维数组,第一层存正图 阅读全文
posted @ 2020-11-02 21:28 Farkas_W 阅读(78) 评论(0) 推荐(0)
摘要:$\quad$前置芝士:Tarjan缩点,建议做做模板题(P3387 【模板】缩点) \(\text{关于题意}\) $\quad$给定一个有向图,求要使一个点 \(t\) 能够到达其他所有点还需加多少边? $\quad$因为在一个强连通分量中,每个点都可以到达其他所有点,所以考虑缩点,将一个强连通 阅读全文
posted @ 2020-11-02 21:27 Farkas_W 阅读(84) 评论(0) 推荐(0)
摘要:\(\text{题目大意}\) $\quad$给出一个有向图,求所有点到起点的距离之和,起点到所有点的距离之和的和。(起点就是$1$)有点绕口 $\quad$虽然$SPFA$已经死了,但还是值得一用的,对于这道题考虑使用$SPFA$求最短路。 $\quad$根据题意,我们可以开二维数组,第一层存正图 阅读全文
posted @ 2020-11-02 21:26 Farkas_W 阅读(82) 评论(0) 推荐(0)
摘要:\(\text{关于题意}\) $\quad$因为点i能保护j的条件是i可以到达j且j可以返回i,这不就是强连通分量的定义吗?所以考虑缩点,将每个强连通分量缩成一个点,缩点后每个强连通分量中只需取一个点,所以记录每个强连通分量中最小点权及其数量,最后最低成本就是每个强连通分量最小点权之和,方案数是最 阅读全文
posted @ 2020-11-02 21:25 Farkas_W 阅读(141) 评论(0) 推荐(0)
摘要:\(\text{关于题意}\) $\quad$一道很简单的树剖题,只有三种操作(其实是两种),唯一要考虑的点是如何将边权转化成点权,考虑到每个点都有且只有一个父亲节点(除根节点1之外),那么我们就可以将父亲与儿子连接的边权记录到儿子身上,这样 \(n-1\) 条边就可以合理的分配到 \(n-1\) 阅读全文
posted @ 2020-11-02 21:24 Farkas_W 阅读(97) 评论(0) 推荐(0)
摘要:\(\text{关于题意}\) $\quad$一道很简单的树剖题,只有三种操作(其实是两种),唯一要考虑的点是如何将边权转化成点权,考虑到每个点都有且只有一个父亲节点(除根节点1之外),那么我们就可以将父亲与儿子连接的边权记录到儿子身上,这样 \(n-1\) 条边就可以合理的分配到 \(n-1\) 阅读全文
posted @ 2020-11-02 21:23 Farkas_W 阅读(81) 评论(0) 推荐(0)
摘要:\(\text{求连通块数量,首先想到二维并查集}\) $\quad$与其它并查集不同,在棋盘上需要二维并查集,用一维数组f记录每个坐标的祖先,用二维数组记录每个点的颜色。(1表示白点,2表示黑点) $\quad$二维并查集一般采用压缩成一维的方法,将坐标为$(x,y)$的点记录为 \((x-1)\ 阅读全文
posted @ 2020-11-02 21:22 Farkas_W 阅读(159) 评论(0) 推荐(0)