2024.2.25 近期练习

P5892

有一个很明显的 O(n2logn) 暴力,也就是枚举左右端点,然后区间查询前 k 大。
主席树即可维护前 k 大。
考虑优化,盲猜决策单调性,于是用分治法求出。

P4067

答案是 k(k)×k
数位 dp。
f(p,limi,limj,limk) 即可,表示当前填到第 p 位,是否有 i/j/k 的最高位限制。
同时记录和,以及个数即可。

P7219

直方图。考虑建出笛卡尔树,那有什么用呢?
两个星星之间若可以共存,取决于其横轴坐标区间上的最高的船。
考虑笛卡尔树上树形 dp。设 dpu,i 表示点 u 子树内最高的高度是 i
转移的话分讨 u 这列选不选。
线段树合并优化,支持全局加,单点取 max⁡,询问区间 max

P5072

我们拆贡献,设元素 x 出现了 c 次,那么其贡献是 2n2nc
考虑莫队,维护每个元素的出现次数。
由于出现次数一样的数是等价的,我们维护出现次数相同的数的和。
只需要用双向链表维护不同的出现次数即可,最多的是 O(n) 的,哈希表也行。
还有一个问题,需要快速的计算 2nmod 任意模数,需要光速幂。

P5985

考虑把这个题放到 01trie 上去考虑,考虑在 01 trie 上面 dp。
我们在字典树上,往右走就是把 f 整体加上 1
由于 n 很小,我们考虑把区间设为状态。设 dpu,l,r 表示 [l,r] 都在字典树 u 节点之内的最大值。
转移直接枚举切点,dpu,l,r=max(dpls,l,k+dprs,k+1,r+sum(k+1,r))
由于字典树只有 logm 种大小不同的子树,所以状态数是 n2logm 级别。
复杂度 O(n3logm),使用区间 dp 的决策单调性优化可以到 O(n2logm) 级别。

P4495

首先与 pgcd 相同的数其实是等价的。所以最多有 σ0(p)2e3 个。
若我们同时选了一个 x 的倍数和一个 y 的倍数,那么所有 gcd(x,y) 的倍数都可以被拼出。
fi,d 表示前 i 个数,仅能拼出 d 的倍数的方案数。
复杂度是 O(σ0(p)2)

posted @   s1monG  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示