01 2020 档案

摘要:"题面" 题意 对于 $n$ 层的汉诺塔,将一个盘子从一个柱子挪到另一个柱子,这样的操作一共有六种:AB,AC,BC,BA,CA,CB,对这六种操作给出优先级,每一次从所有合法的操作中选择出上一次没有移动过的盘子中操作优先级最高的操作执行,求出需要的步数。 题解 假设空的塔底有无穷大的盘子。只考虑塔 阅读全文
posted @ 2020-01-22 00:24 Kilo-5723 阅读(120) 评论(0) 推荐(0)
摘要:第一页的题解链接 "BZOJ 1000 A+B Problem" "BZOJ 1001 狼抓兔子" "BZOJ 1002 轮状病毒" "BZOJ 1003 物流运输" "BZOJ 1004 Cards" "BZOJ 1005 明明的烦恼" "BZOJ 1006 神奇的国度" "BZOJ 1007 水 阅读全文
posted @ 2020-01-21 22:41 Kilo-5723 阅读(121) 评论(0) 推荐(0)
摘要:"题面" 题意 有一个 $2 \times n$ 的初始为空的网格图,要求支持 $m$ 次操作,每次操作可以加入或删除一条网格的边或者询问两点之间是否联通。 题解 将每一个方格及其左,上,下三条边作为一个单元,用线段树维护连续一段单元的左上,左下,右上,右下四个顶点互相之间的连通性。父节点四个顶点之 阅读全文
posted @ 2020-01-21 05:30 Kilo-5723 阅读(184) 评论(0) 推荐(0)
摘要:"题面" 题意 有两类共 $n$ 种物品,所有物品都有一定的价值。第一类物品每种有一定数量和价格,数量上限为 $k$,第二类物品可以通过已有的物品合成得到,每种物品合成的方案可以用树表示,父节点由所有子节点的装备以一定数量合成。给出所有物品及合成方案,求用 $m$ 个货币最高能获得的价值。 题解 树 阅读全文
posted @ 2020-01-20 20:52 Kilo-5723 阅读(154) 评论(0) 推荐(0)
摘要:"题面" 题意 给出一张 $n$ 个点,$m$ 条边的带权无向图,求不同最小生成树的数量。同一权值的边至多有 $k=10$ 条。 题解 根据 Kruskal 算法的思想,按照边权从小到大的顺序处理边,每次处理同一权值的所有边。 处理同一权值的边时,考虑图的联通情况。边权较小的边已经把图连接成了数个联 阅读全文
posted @ 2020-01-17 21:44 Kilo-5723 阅读(140) 评论(0) 推荐(0)
摘要:"题面" 题意 给定无向图,每次删去一个点并求连通分量个数。 题解 很难在删除点的同时维护联通分量个数,但是如果把操作倒序,问题就变成了每次往无向图里添加一个点并求连通分量个数。可以用并查集维护。 代码 阅读全文
posted @ 2020-01-14 07:33 Kilo-5723 阅读(131) 评论(0) 推荐(0)
摘要:"题面" 题意 维护一个串,支持插入一个字符,修改一个字符,以及求两个后缀的最长公共前缀。 题解 用平衡树维护字符串,每一个节点额外维护节点的子树代表字符串的哈希值。在写这道题时选择了 Splay 作为平衡树的实现方式,此时维护节点信息只需要在每一次旋转的时候更新关联节点子树的哈希值就可以保证正确。 阅读全文
posted @ 2020-01-13 23:23 Kilo-5723 阅读(128) 评论(0) 推荐(0)
摘要:"题面" 题意 给出 $n$ 维球体上的 $n+1$ 个点 $A_0 \sim A_n$,求球心位置。 题解 令球心的第 $i$ 维坐标为 $x_i$,第 $i$ 个点的第 $j$ 维坐标为 $(A_i)_j$,球体半径为 $r$,则可以得到方程: $$\sum_{j=1}^n ((A_i)_j x 阅读全文
posted @ 2020-01-10 02:44 Kilo-5723 阅读(128) 评论(0) 推荐(0)