10 2021 档案

摘要:发现每个点距离为 \(1\) 的节点就是儿子或者父亲,因此可以把儿子和父亲分开来算。 计算父亲是很容易的,直接维护 \(a\) 的值。对于操作 \(1\) ,在父亲上标记就行了,表示这个点进行过几次的操作 \(1\)。 对于每个节点维护儿子,就会发现是要维护:单点加入、单点删除、全局 \(+1\), 阅读全文
posted @ 2021-10-28 22:24 Little09 阅读(70) 评论(0) 推荐(0)
摘要:题意 一只乌龟从 \(2 \times n\) 的棋盘的左上角走到右下角,只能往下或往右,需要给出一种方案来分配 \(2\times n\) 个数字使得乌龟走过的路径上的数之和的最大值最小。 \(2\le n\le 25\),\(0\le a_{1,i},a_{2,i}\le 50000\)。 找性 阅读全文
posted @ 2021-10-04 21:10 Little09 阅读(89) 评论(0) 推荐(0)
摘要:沿用 easy version 的思路:考虑如果到目前已经放了 \(2\) 个集合及以上,那么接下来只要轮换放置就可以避免「用同一个账号连续发出两个帖子」。所以在放了 \(2\) 个集合以后只要找到剩下前 \(k-2\) 大的数放即可。 于是一定是把前 \(x\) 个数放在第一个集合,第 \(x+1 阅读全文
posted @ 2021-10-02 14:54 Little09 阅读(296) 评论(0) 推荐(0)
摘要:稍作转化,题目就是要求: \(\sum_{i=1}^n\sum_{j=i+1}^na_i+a_j-2\times f(i,j)\) 你也许会发现这和树上两点距离公式长得很像。于是把笛卡尔树建出来,每条边的权值是两个节点的权值差。于是就是选出 \(m\) 个点使两两的距离和最大。 考虑 \(O(n^2 阅读全文
posted @ 2021-10-02 14:53 Little09 阅读(65) 评论(0) 推荐(0)