10 2020 档案

摘要:这是一种奇妙的算法用来解决两个问题: 精确覆盖问题:给定一个矩阵,每行是一个二进制数,选出尽量少的行,使得每一列恰好有一个 $1$ 重复覆盖问题:给定一个矩阵,每行是一个二进制数,选出尽量少的行,使得每列至少有一个 $1$。 模板一般需要有两个:① 数据结构(十字链表)② dfs 框架 其中 ① 对 阅读全文
posted @ 2020-10-18 13:54 DMoRanSky 阅读(236) 评论(0) 推荐(1) 编辑
摘要:模板题 原理 类似树链剖分对重儿子/长儿子剖分,Link Cut Tree 也做的是类似的链剖分。 每个节点选出 \(0 / 1\) 个儿子作为实儿子,剩下是虚儿子。对应的边是实边/虚边,虚实时可以进行灵活变换的。 实链:实边连起来的极大链,也可以理解为所有实边构成的若干联通块。 Splay 维护每 阅读全文
posted @ 2020-10-18 01:47 DMoRanSky 阅读(168) 评论(0) 推荐(1) 编辑
摘要:我是真的不稳定的垃圾选手。 对于一张图来说,两个人能满足题面关系等价于这张图不是链,很好证明,如果有度数 \(> 2\) 的点,让一个人跑到一个度数 \(= 1\) 的地方就可以了。 如果离线就可以什么启发式合并 + 并查集做到一个 \(\log\)。就是合并两个点 \(x, y\),动态维护每个联 阅读全文
posted @ 2020-10-14 22:38 DMoRanSky 阅读(158) 评论(0) 推荐(0) 编辑
摘要:网上感觉没有什么很详细 + 证明的讲解啊) 前置:Kruskal 求最小生成树。 这个算法可以将一棵树 / 无向连通图重构成一颗有性质的新树。 算法可以解决一些树上瓶颈边权之类的问题,可以把需要持久化的并查集给代替掉。 设 \(f_i\) 为 \(i\) 所在联通块的根。 算法流程和 Kruskal 阅读全文
posted @ 2020-10-13 22:50 DMoRanSky 阅读(701) 评论(2) 推荐(1) 编辑
摘要:考场想了 5.5 h,第一部分分死活打不出来,做到崩盘,现在重做,感觉自己就是一个sb,放学在地铁上一眼就会了。哎。 可以把一个要求看作一个长度为 \(m\) 的区间:\([l, l + m - 1]\),可以要求这段条件的充要条件是找到一种循环移位,每个墙恰好可以被那个工人挖。然后问题是用最少的区 阅读全文
posted @ 2020-10-12 20:33 DMoRanSky 阅读(196) 评论(0) 推荐(1) 编辑
摘要:2020.10.11 初赛了,没怎么做题,之前在网上两次初赛模拟赛 95pts / 94pts,还白嫖了一本书,感觉挺好。 去考场,中途不舒服去了厕所,回来发现有点来不及,阅读程序最后两题不会瞎蒙。 出考场发现自己蒙对,但是栈底看错,\(n < 1000\) 被坑,\(O(n!)\) 至今也不知道为 阅读全文
posted @ 2020-10-11 22:06 DMoRanSky 阅读(429) 评论(0) 推荐(0) 编辑
摘要:习题 方差 拆式子,维护支持求区间平方和和区间和的线段树,记一个加法懒标记。 #include <iostream> #include <cstdio> using namespace std; const int N = 100005; int n, m; double a[N], tag[N < 阅读全文
posted @ 2020-10-02 10:37 DMoRanSky 阅读(353) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示