上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 50 下一页
摘要: 很套路的一个题。 首先发现,当左端点固定,随着右端点增加,区间 or⁡\operatorname{or}or 和区间 max⁡\maxmax 都是单调不递减的。 但是这个性质还不够强!我们发现,左端点固定,右端点增加时,每一次区间 or⁡\operatorname{or}or 发现改变,二进制至少有 阅读全文
posted @ 2023-07-21 16:04 HappyBobb 阅读(11) 评论(0) 推荐(0)
摘要: 首先可以发现答案小于等于 n+2n+2n+2.于是可以考虑枚举 xxx,判断 xxx 是否为一个子段的 mex⁡\operatorname{mex}mex。 考虑如果 xxx 为 mex⁡\operatorname{mex}mex 的条件是什么?区间内没有 xxx,但包含 1∼x−11 \sim x 阅读全文
posted @ 2023-07-21 15:56 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要: 考虑 DP。 我们令 ai,bi,ci,dia_i,b_i,c_i,d_iai​,bi​,ci​,di​ 为每名英雄的四个属性,顺序如输入格式所描述。 显然有 fi=max⁡j∣aj<ai∧dj≤bi∧cj≤difj+1f_i = \max \limits_{j|a_j<a_i \land d_j 阅读全文
posted @ 2023-07-20 22:06 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要: 由于 kkk 固定,考虑处理 hih_ihi​ 为以 iii 开头的后缀的前 kkk 个字符的哈希值。 两个后缀的最长公共前缀 ≥k\geq k≥k 等价于这两个后缀前 kkk 个字符相同,于是可以转化为 hi=hjh_i=h_jhi​=hj​。 于是变成了经典的类似区间数颜色的问题,使用莫队,块长 阅读全文
posted @ 2023-07-20 18:29 HappyBobb 阅读(12) 评论(0) 推荐(0)
摘要: 容易发现当 n≤1n \leq 1n≤1 时,由于 nnn 在 int 范围内,所以 p<31p < 31p<31。考虑从小到大枚举 ppp 并二分 np\sqrt [p]{n}pn​,判断是否是整数即可。 #include <iostream> #include <cstdio> #include 阅读全文
posted @ 2023-07-18 18:46 HappyBobb 阅读(23) 评论(0) 推荐(0)
摘要: 这里介绍 Xor-Hash 的树哈希换根做法。 令 fif_ifi​ 为设树根为 111,以 iii 为根的子树的哈希值,有 fi=1+∑j∈sonuF(fj)f_i = 1 + \sum \limits_{j \in son_u} F(f_j)fi​=1+j∈sonu​∑​F(fj​),FFF 是 阅读全文
posted @ 2023-07-17 21:51 HappyBobb 阅读(12) 评论(0) 推荐(0)
摘要: 如果是有根树,我们只需要从根开始树哈希即可。如果是无根树,一种方案是,依次选取每个点作为根,但复杂度无法接受。当然可以换根 DP,但有一个比较聪明的方法。 找到两棵树的重心进行树哈希。注意重心最多有两个,所以要进行两次树哈希,对哈希值进行对比。 令 fif_ifi​ 为以 iii 为根的子树的哈希值 阅读全文
posted @ 2023-07-17 17:39 HappyBobb 阅读(29) 评论(0) 推荐(0)
摘要: 有趣的题。 首先第一个和第二个条件可以暴力枚举,复杂度 O(n2)O(n^2)O(n2)。 可以发现如果满足了第一个和第二个条件,这个矩阵其实就是一个无向完全图的邻接矩阵,ai,ja_{i,j}ai,j​ 表示 i↔ji \leftrightarrow ji↔j 的边权。 接着思考第三个。 我们发现 阅读全文
posted @ 2023-07-17 14:11 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要: 考虑拆点,每个点对 (x,y)(x,y)(x,y) 拆成入点 uuu 和出点 vvv。连 x→cap=+∞,cost=0yx \xrightarrow{cap=+\infty,cost=0} yxcap=+∞,cost=0​y。如果这个地方有石头,再连一条 x→cap=1,cost=1yx \xri 阅读全文
posted @ 2023-07-15 17:07 HappyBobb 阅读(10) 评论(0) 推荐(0)
摘要: 简单费用流。 考虑每个点 (x,y)(x,y)(x,y) 转化成 (x−1)×(p+1)+y+16(x-1) \times (p+1) + y+16(x−1)×(p+1)+y+16。加上 161616 是为了避免结果为负数或 000。 题目限制只能往上或往右,于是对于每个点 uuu,找到上边和右边的 阅读全文
posted @ 2023-07-13 19:03 HappyBobb 阅读(10) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 50 下一页