上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页
摘要: 这道题非常有意思。 首先存在点的度数 $>4$ 即无解。 因为要和坐标轴平行,且要求路径不能相交,那么点显然更不能相交,但只有 $4$ 个象限,最多只能向 $4$ 个象限分别连一条边,所以当度数超过 $4$ 的时候无解。 如何保证不相交?我们注意到 $n$ 到数据范围特别小,只到 $30$,相比之下 阅读全文
posted @ 2021-08-13 12:38 zhaohaikun 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 这题其实有 $O(n \log n)$​ 的做法。 首先,如果一个砖块可以压在另一个砖块上面只要满足长边比另一个砖块的长边小,短边也比另一个砖块的短边小,这是非常显然的。写成式子:如果这个砖块宽和长分别为 $kx,ky(kx<ky)$​,另一个砖块宽和长分别为 $tx,ty(tx<ty)$​,若满足 阅读全文
posted @ 2021-08-09 11:13 zhaohaikun 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 这道题首先考虑把求面积转化成求满足条件的格点数量,接着考虑怎么做。因为这两个矩形没有交,所以一个点最多只会被覆盖一次。于是最终答案中 \(K\) 层涂料的只可能是初始下 \(K-1\) 层涂料(被涂一层)和 \(K\) 层涂料(没有被涂)。 于是就考虑转化,涂了 \(K-1\) 层的格子标记为 \( 阅读全文
posted @ 2021-08-09 11:12 zhaohaikun 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 无任何高级数据结构。 本题分为两部分: 一部分是求出树上 \(k\) 级祖先,直接倍增跳就可以。 另一部分是求出树上 \(k\) 级子孙的数量,这一部分比较复杂。 首先一个点的 \(k\) 级子孙的深度显然都是一样的,因为是在同一子树内,所以,如果我们把 \(dep\) 为 \(x\) 的点的 \( 阅读全文
posted @ 2021-08-06 17:43 zhaohaikun 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 为什么最劣解选手还有脸来写题解啊…… 这题首先考虑每个数 $x(1\leq x\leq n)$​​​​ 分开算贡献。设 $B_1,B_2,\cdots,B_{m_x}(A_{B_i}=x)$​​​​。我们发现对于每个数分开计算是,$A_1,A_2,\cdots,A_n$​​​​ 只有两种数,一种是等 阅读全文
posted @ 2021-08-04 09:52 zhaohaikun 阅读(54) 评论(0) 推荐(1) 编辑
摘要: 赛时并没有能调出来:( 这是一个 \(O(n\sqrt{n}\log n)\) 的屑做法,主要原因是我看到了 \(a_i\) 互不相等,但根本没想到怎么去用。 设 \(maxn=\max\limits_{i=1}^{n}a_i\),\(len=\sqrt{maxn}\) 下文将用到。 考虑对每个 \ 阅读全文
posted @ 2021-07-24 14:57 zhaohaikun 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一种新的方法,做法类似于 w33z 的毒瘤题团,大家可以类比着看一下。 团这道题启示我们什么?对于 \(n\) 个点向 \(m\) 个点分别连边,我们可以引入中介来讲 \(nm\) 条边变成 \(n+m\) 条边。 相似的道理,首先考虑如果 \(S_{i,i}\) 保证为 \(1\) 怎么做?我们可 阅读全文
posted @ 2021-06-30 13:31 zhaohaikun 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 比赛当时降智了,没有想出来。 我们询问一个点,与它距离为 \(1\) 的所有点都跟它有边。 所以,我们想知道树的所有边只需查询所有深度为奇数的点,或所有深度为偶数的点就可以了。 这样我们就可以先查询任意一个节点,把它拉出来作根,然后再比较深度为奇数的点的个数和深度为偶数的点的个数(注意不要把根节点算 阅读全文
posted @ 2021-06-18 10:26 zhaohaikun 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 这道题首先需要跑一遍边双连通分量,然后剩下来的就是一颗树,每个点有其点权,询问对于树上一条 \((u,v)\) 的简单路径,时候经过的点的点权和不为 \(0\)。 其他题解基本都是跑 \(LCA\),去求路径的权值,其实这并没有必要,因为两点间的路径点权和为 \(0\) 的是一个连通块,若询问的 \ 阅读全文
posted @ 2021-05-27 17:31 zhaohaikun 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 这题我们可以想到将每个数字变成 \(d\) 进制的数,消灭数可以看成是 \(d\) 进制下原数是这个数 \(d\) 进制下的一段前缀。 于是可以使用 \(Trie\) 来实现这个过程,于是可以先将这 \(m\) 个原数 insert,然后再去查询。 一个数有多个前缀,我们可以选择其中最短的一个,因为 阅读全文
posted @ 2021-05-20 16:45 zhaohaikun 阅读(71) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页