码迷,mamicode.com
首页 > 其他好文 > 详细

loj rounds 补题

时间:2019-10-23 16:43:28      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:容量   序列   就会   拼图   钢琴   题意   限制   流量   math   

LibreOJ β Round

ZQC 的树列

考虑原序列中的所有子序列中,美观值最大的一定是原序列。
那么这些子序列美观度与原序列相同的充要条件是包含每个最值点。
由于我们要构造一个特征值为\(k\)的序列。其实只用\(0, 1, 2\)三种元素就能构造。构造的序列一定是一段0(,一段1),一段2(,一段1),一段0(,一段1)...
考虑一段长度为\(l\)的连续1的贡献为\(2 ^ l\),一段长度为\(l\)的连续0或2的贡献为\(2 ^ l - 1\)。相当于把\(k\)分解成这种数的乘积。(只要分解出来,长度一定不会超过限制)
这个东西其实有点困难。因为朴素的贪心分解(从大到小枚举因数)是错的,反例如\(315 = 3 * 3 * 5 * 7 = 5 * 63 = 3 * 7 * 15\)
但是其实反例很少,因为这种情况只会出现在要分解的数能被\(63\)整除的情况下。把63屏蔽掉即可。
为什么只有63被屏蔽呢?事实上因为它是满足\((2 ^ k - 1) | \prod_{i = 2} ^ {k - 1} (2 ^ i - 1)\)的,就会被叉。

ZQC 的游戏

把每个球(除了1号)和每个食物看做一个点,每个球与在其移动范围内的食物连一条容量为\(w\)的边(食物的重量),并且给每个球一个流量限制,使得其最终重量不能超过1号球,然后跑一个最大流,判断一下所有食物是否能把重量分光,即判断一下最大流是不是等于食物的总重量(预先把1号球能吃的都给1)即可。

ZQC 的拼图

二分是显然的。然后就是一个dp再优化一下了。(不优化竟然也能过!)

ZQC 的手办

这似乎是一个和超级钢琴一样的套路。用线段树+堆即可。
线段树维护的数区间最小值即其位置(如果有多个最小值,取任意一个位置即可)。
然后每次询问的话,考虑先找出整段区间的最小值及其位置,然后构成一个四元组\((l, r, v, x)\),考虑每次在堆中取出\(v\)最小的四元组,然后加入\((l, x - 1, query(l, x - 1).v, query(l, x - 1).x)\)\((x + 1, r, query(x + 1, r).v, query(x + 1, r).x)\)即可。复杂度\(\mathcal O(q {\log_2} ^ 2 n)\)

LibreOJ β Round #2

模拟只会猜题意

\(\mathcal O(n ^ 2)\)处理出每个区间的答案,它对一段前缀询问区间产生贡献(打个标记处理后缀max即可)。复杂度\(\mathcal O(n ^ 2 + q)\)

贪心只能过样例

bitset乱搞。复杂度\(\mathcal O(\frac{n V ^ 4}{\omega})\)

DP 一般看规律

看上去就是一道启发式合并。每次合并用set合并,而答案显然是随操作单调的。
合并的时候要更新答案,具体就是枚举小的set里面的元素,在大set里面查找前驱后继。
注意如果没有颜色\(x\)的位置或没有颜色\(y\)的位置要直接对set赋值。\(x = y\)时要跳过。
复杂度\(\mathcal O(q + n {\log_2} ^ 2 n)\)
然后注意set的赋值或赋值是\(\mathcal O(size)\)的,但是交换是\(\mathcal O(1)\)的,所以可行的时候用swap代替赋值。

loj rounds 补题

标签:容量   序列   就会   拼图   钢琴   题意   限制   流量   math   

原文地址:https://www.cnblogs.com/psimonw/p/11725796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!