上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 64 下一页
摘要: I.IV.[NOI2020]命运 半年前水了份 \(n^2\) 暴力,没想到过了出题人用脚造的数据。这里是正解。 考虑DP。因为若两条路径呈包含关系,则更长的那条显然没用,于是设 \(f_{i,j}\) 表示所有下端在 \(i\) 子树内且未被满足的路径中,上端最深的那条的深度。明显,要且仅要满足这 阅读全文
posted @ 2021-04-06 10:24 Troverld 阅读(107) 评论(0) 推荐(0)
摘要: I.III.[PKUWC2018]Minimax 看错题+理解错题,成功自闭一整晚 首先,一上来我们就能想到,如果用一个数组来表示每个节点所有可能出现的值及其概率,就会比较轻松。而因为树上父节点的数组是由两个子节点的数组合在一起转移而来的,所以考虑用线段树合并来维护该数组。 显然,没有儿子时转移很轻 阅读全文
posted @ 2021-04-06 10:22 Troverld 阅读(78) 评论(0) 推荐(0)
摘要: I.II.[ZJOI2019]语言 一开始看错题,以为同一种语言会被普及多次,然后就成了神题不会做。一看题解,发现自己看错题了,原来是垃圾题。 一个点所能到达的点,只有与它在同一条路径上出现过的点,换句话说就是经过它全部路径的并。 全部路径的并很好搞,就是全部路径端点建出虚树的大小。虚树大小也很好搞 阅读全文
posted @ 2021-04-06 10:21 Troverld 阅读(83) 评论(0) 推荐(0)
摘要: I.I.[POI2011]ROT-Tree Rotations 可以发现,你无论如何交换某个节点里的儿子们,该节点子树内每个数的数量都是不变的。 于是我们考虑类CDQ分治的思想——先计算儿子内部最小逆序对数,然后再在父亲处计算两个儿子之间的最小逆序对数。 因为保证叶节点上的东西是排列,所以设左儿子的 阅读全文
posted @ 2021-04-06 10:18 Troverld 阅读(61) 评论(0) 推荐(0)
摘要: IX.[Ynoi2017] 由乃的玉米田 比VII.小清新人渣的本愿仅仅多了一个除法操作。 常规方法看上去不行,考虑根号分治。对于 \(\geq\sqrt n\) 的询问,直接暴力枚举较小的那个数即可。对于 \(<\sqrt n\) 的询问,考虑 \(O(n)\) 扫一遍回答所有 \(x\) 为某一 阅读全文
posted @ 2021-04-06 10:16 Troverld 阅读(67) 评论(0) 推荐(0)
摘要: VIII.CF633H Fibonacci-ish II 强烈谴责卡常屑题( 莫队。于是要支持插入数、查询与斐波那契数列的点积和。 离散化后就直接在线段树上处理。于是变成单点插入/删除(这个很 easy)以及后缀斐波那契数列前移/后移。 直接上矩阵维护。但是会TLE(因为常数是 \(2^3\))。预 阅读全文
posted @ 2021-04-06 10:14 Troverld 阅读(63) 评论(0) 推荐(0)
摘要: VII.小清新人渣的本愿 仍是 bitset 优化莫队。 具体而言,减操作就直接右移/左移 bitset(具体哪个都行,反正是等价的)然后求 and 看看是否非零即可;加操作就同时维护原本的 bitset 和取反后的 bitset,然后就像减操作一样处理即可;乘操作就直接 \(\sqrt n\) 地 阅读全文
posted @ 2021-04-06 10:12 Troverld 阅读(75) 评论(0) 推荐(0)
摘要: VI.[Ynoi2016] 掉进兔子洞 bitset 优化莫队。 具体而言,我们似乎只需要求出三个区间的 bitset,然后求交即可。 但是问题来了,bitset 似乎只支持不可重集求交呀? 没关系,我们考虑在离散化时,对于一个出现次数为 \(c_x\) 的元素 \(x\),预留它后面的 \(c_x 阅读全文
posted @ 2021-04-06 10:10 Troverld 阅读(75) 评论(0) 推荐(0)
摘要: V.CF940F Machine Learning 直接在线莫队即可。 需要注意的是,因为本题中 \(\text{mex}\) 大小是不可能超过 \(\sqrt n\) 的,因此不用分块维护值域,直接暴力即可。时间复杂度 \(O(n^{5/3})\)。 代码: #include<bits/stdc+ 阅读全文
posted @ 2021-04-06 10:07 Troverld 阅读(54) 评论(0) 推荐(0)
摘要: IV.CF576C Points on Plane 实际上跟莫队关系不大,但是注意到平面上两点间曼哈顿距离就等价于莫队上从一个状态到另一个状态时左右端点移动次数。于是直接莫队式排序即可。 代码: #include<bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2021-04-06 10:05 Troverld 阅读(57) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 64 下一页