摘要: 题面 源 OJ 未 AC(卡 \(map\) ,不想写 \(hash\) )。 看到 \(n \leq 100\) ,显然 \(O(n^6)\) 会挂掉,所以要优化。 考虑到原式可化为 \(a \times b + c = d \times (e+f)\) ,所以可以分别枚举 \(a,b,c\) 和 阅读全文
posted @ 2021-08-04 15:53 Chiimo 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题面 看到 \(n \leq 35\) ,这是一个非常小的数据,但是 \(O(2^n)\) 的暴力跑不过去,所以考虑玄学做法 \(\text{Meet in Middle}\) 。就是先做左边,然后做右边的时候顺便和左边合并。 考虑到每个点最多进行一次操作(两次操作回源没用),所以对于每个点只有操作 阅读全文
posted @ 2021-08-03 17:14 Chiimo 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题面 首先他叫我们建一颗笛卡尔树,所以我们就建一颗笛卡尔树。 然后他说要生成序列中最小的。想到笛卡尔树的一条性质:左<根<右。但是根节点必须先插进去。他的两个儿子用贪心的思想就知道是先选左边那个。然后这题就做完了。 根据分析我们知道,遍历的顺序是根-左-右,这不是先序遍历么。 code 阅读全文
posted @ 2021-08-03 17:07 Chiimo 阅读(15) 评论(0) 推荐(0) 编辑
摘要: Contest Website : atcoder.jp/contests/dp \[ \begin{array}{c|C|c|c} TaskNum & TaskName & Status & Algorithm \\ \hline A & Frog 1 & \color{green}{AC} & 阅读全文
posted @ 2021-07-04 16:53 Chiimo 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个数组,求有多少组 \(i,j\) 将整个数组分成和相等的三个数组。 Solution 从左往右看一遍,记录每一个 \(i\) 使得 \(\sum_{k=1}^i a_k = \dfrac{S}{3}\) 从右往左看一遍,记录每一个 \(j\) 使得 \(\sum_{k 阅读全文
posted @ 2021-07-02 16:37 Chiimo 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 都不会。 阅读全文
posted @ 2021-07-02 10:57 Chiimo 阅读(33) 评论(0) 推荐(0) 编辑
摘要: ST表 阅读全文
posted @ 2021-05-16 10:11 Chiimo 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 Description 给定一棵树上的三个点 \(a,b,c\),你要制定两条起点和终点都在这三个点中的路径,使得两条路径重叠的节点最多。 Solution 感觉我的方法和大众不同,显然是珂以Hack的 考虑分类讨论,分三类: \(a\) 点在这两条路径的起止点中出现 \(2\) 次。 阅读全文
posted @ 2021-05-02 16:24 Chiimo 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 紫题快乐! 阅读全文
posted @ 2021-05-01 15:26 Chiimo 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目 看题目的时候一脸懵,直到看见数据范围 \[ N \le 10,\; M \le 10,\; Q \le 50 \] 之后才意识到问题的严重性。 毕竟数据如此的小,我们完全可以用阶乘复杂度算法卡过去。 然后这题就愉快地做完了。 阅读全文
posted @ 2021-03-27 18:27 Chiimo 阅读(24) 评论(0) 推荐(0) 编辑