首页 > 其他分享 >CF1859

CF1859

时间:2024-11-09 13:58:12浏览次数:1  
标签:10 le CF1859 times 最小值 给定 区间

A

给定一个数组,要求把它分为两个非空数组 $S,T$,满足不存在 $a\in S,b\in T,~b|a$。
构造一组方案。
$n\le 10^5$

构造题,考虑观察性质。
发现若 \(b|a\) 有 \(b\leq a\),那么只需把原数组中的所有最小值放到 \(S\) 中,其它全部扔到 \(T\) 中即可。

启发我们构造时应发掘性质,利用好那些 必要条件

B

给定 n 个数列,每个长为 $m_i$。
现在可以把每个数列至多选一个数移动到另一个序列中。
最大化每个数列的最小值之和。
$n\le 2.5\times 10^4,2\le m_i,\sum m_i\le 5\times 10^4$

显然只会把最小值送出去,那么必然是要把这些最小值集中在一个地方。
(自己想的时候要分讨,但实际上是细节没刻画明白)
每个数列一定会把最小值送出去,然后再放到一个地方,这样是不劣的。
故我们可以用最小值和次小值来刻画贡献,\(\sum\limits g_{i}-\min(g_{i})+\min(f_{i})\)。

贪心的最优化有时 写成式子 可以去掉过程化的冗杂思考。

C

给定排列长度 n,构造这个排列,最大化 $\sum p_i\times i-\max(p_i\times i)$。
只需输出最优结果即可。
$n\le 500$

显然枚举最大值然后数据结构维护就可以做到 \(\mathcal O(n^{3}\log n)\)。
然而题解区有一种直接翻转后缀的做法。
贪心性可以理解,打表也能看出来,但是没法证。
傻逼猜结论没有证明(写题人在这证了一个半点,中途破防了好几次,也没有任何进展)。
代码

D

给定 n 个区间 $[L_i,R_i],[l_i,r_i]$,保证 $L_i\le l_i\le r_i\le R_i$。
每次可以从 $\forall x\in[L_i,R_i]\to \forall y[l_i,r_i]$。
给出 q 个询问,每次询问以 x 为出发能到达的最右位置。
$n,q\le 10^5$

贪心,注意到从 \((l_{i},R_{i}]\) 移动到 \([l_{i},r_{i}]\) 是注定不优的,对于 其余的情况每次都跳到 \(r_{i}\) 是最优的。
于是我们可以把每个区间都简化为 \([L_{i},r_{i}]\),然后问题变为不断走区间的交能到达的最大右端点。
那么我们可以把所有相交区间合并起来,扫描线即可。

E

给定序列 $\{a_n\},\{b_n\}$,定义一个区间 $[l,r]$ 的权值为 $\lvert a_l-b_r\rvert+\lvert b_l-a_r\rvert$。
在序列上选择若干不交区间,使得其区间长度和为 $m$,最大化权值和。
$n,m\le 3\times 10^3$

不交区间 dp 有好性质。
考虑分析区间权值的性质,注意到 \(\lvert x \rvert\geq x\),在求 \(\max\) 中有很好的性质。
故我们不需要分讨权值大小情况,只需直接爆枚举四种情况都取 \(\max\) 即可。
稍微拆一下式子,直接前缀最大值做即可。

F

给定一棵有边权树,有一些特殊点。
初始有 $c=1$,在特殊点上可以花费 $m$ 的时间强化使得 $c\leftarrow 2c$,此时经过一条边的时间是 $\lceil \frac{w_i}{c}\rceil$。
给出若干询问,每次问 $a\to b$ 的最短花费时间。
$n,q\le 10^5,w_i\le 10^9$

显然强化次数最多 \(\log V\),可以枚举。
枚举后,答案一定形如,先走一段路径,走到特殊点再返回路径,然后走到终点。
注意到这个特殊点一定是 lca 的形式,那么只需维护对于任意一点算出先走到特殊点再走回来的最小路径,多源 dij 即可。
然后只需分讨那个点在哪,维护一个式子,由于静态直接倍增即可。

感觉实现比较麻烦,但是想起来比较简单。

标签:10,le,CF1859,times,最小值,给定,区间
From: https://www.cnblogs.com/Sugar-Cube/p/18536720

相关文章

  • CF1859A题解
    CF1859A题解思路考虑一种极端情况,\(b\)数组内的数全部比\(a\)大,这样也无法整除,所以这就是这道题的突破口。我们让\(b\)数组内的数全部比\(a\)里的大,最方便的实现方法就是把原数组内的最大的数放进\(b\)数组,剩下的放进\(a\)数组。注意特判无解情况:原数组内的数一样,这......
  • CF1859
    A让\(c\)保存数组中所有最大的数,如果所有数都相等则\(-1\)。B只需要记录每个序列的最小值和次小值,然后对次小值求前后缀和。C枚举最大值\(mx\),然后遍历\(i:n\sim1\)。对于\(i\),取最大数\(x\)满足\(x\)未选且\(i\timesx\lemx\)。证明:假设\(i\)原本与\(x\)......
  • CF1859F Fancy Arrays
    FancyArrays-洛谷我们先找这题看起来有点奇怪的部分:\(x\leq40\)\(|a_i-a_{i-1}|\leqk\)我们先考虑第二个条件怎么用。我们发现\(\mina_i\in[0,x+k)\),而原数组相邻两数之差的条件肯定要考虑成差分来处理可以发现,一个差分数组和\(\mina_i\)与一个\(a_......
  • CF1859F
    现有一棵大小为$105$的有边权树和最多$105$次询问,每次询问树上两点$u$到$v$需要的最短时间与直接求路径长度不同的是,你的速度是可以变化的。你的初始速度$c=1$,在可以练习的地点,你可以花费时间$T$使得你的速度$c=c\times2$,而你经过每条路径所需的时间为$\lceil\frac{w_i}{c}......
  • CF1859C 题解
    思路我们实际上发现它计算的就是\(p_i\cdoti\)的和再减去一个\(p_i\cdoti\)中的最大值。那我们可以枚举这个最大值\(p_x\cdotx\),这个值就是最后和中需要删除的数值。这里我们可以使用贪心。我们可以从\(n\sim1\)枚举除\(p_i\)的每个数字需要配的数字。当然,......
  • CF1859B 题解
    题意给定\(n\)个长度为\(m\)的数组,每个数组可以向别的数组转移最多一个数字,任意一个数组都可以接受无穷多的数字,最大化每个数组的最小值之和。做法考虑贪心。我们记第\(i\)个数组的第\(j\)个数字为\(a_{i,j}\)。我们先对每一个数组按照升序进行排序,那我们最不愿意......