2023.4.26 闲话

蚌:


ABC299G Minimum Permutation

给值在 [1,m] 的序列 {an},找到一个长度为 m 的字典序最小的子序列,且满足其是一个排列 .

1mn2×105 .

考虑从前往后贪心选,根据一些观察可以知道如果三个位置 i,j,k 满足 ai<ajai=ak 那么选 ai 一定不优,于是预处理每个数最后一次出现的位置后 单调栈维护即可 .

时间复杂度 Θ(n) .

ABC293F Zero or One

给正整数 n,问有多少个正整数 b 使得 b 进制下 n 只含 0 和 1 .

最多 1000 组询问,2n1018 .

¿

考虑阈值分治,设阈值 B,则对于 bB,暴力枚举每个 b 后分解判断,对于 b>B,枚举每种 b 进制下仅含 0 和 1 的数后二分出是否存在 b .

那么时间复杂度就是单次 Θ(Blogn+2logBnlognlogBn)

这个平衡好像不太可能初等完成,不过取 B=Θ(2logn) 可以得到单次 Θ(2logn(logn)1.5) 的时间复杂度下界,实际我取的 B=2×103(是不是差有点大) .

有一种无脑做法:注意到 b 肯定是 nn1 的因子,Pollard-Rho 分解后暴力判断即可 .

ABC292F Regular Triangle Inside a Rectangle

a×b 矩形里最大能放边长多大的等腰三角形 .

1a,b103 .

弃疗 .

不难发现肯定是 a,b 相差比较远就直接平放,否则固定一个端点另两个在边上 .


如图是 1×1 的情况(固定一个端点另两个在边上).

不失一般性让 ab,那么 a233b 时比较显然答案就是 2b23ab+a2 .

否则 a=b 时答案是 aa=233b 时答案是 233b,这两个都平凡,根据数学直觉可以猜想答案是线性的,于是答案的表达式就可以得到了:

ans={2b23ab+a2a233b233aa>233b

理性分析一下好像还是比较容易,因为不想配图所以就不写了 .

SCOI2009 游戏

对于所有 1n 的排列,问其所有置换环大小的 LCM 有多少种不同取值 .

1n1000 .

发现排列并没有什么用,实际上置换环大小可以等价的转化为任意一组 n 的拆分 .

然后再观察发现只有 square-free 的数有贡献,别的可以丢掉不看,然后整一个 Θ(n2) 的 01 背包就完了 .

HNOI/AHOI2018 道路

给一个二叉树 T,每个非叶子节点可以标记到左儿子的边或者到右儿子的边其一 .

每种情况的代价为

i=1nci(ai+xi)(bi+yi)

其中 a,b,c 给定,xi,yi 分别为 i 到根路径上未被标记的左儿子边 / 右儿子边个数 .

问最小代价是多少 .

1n2×1041ai,bi60,树深度不大于 40 .

朴素 DP,令 dpu,l,r 表示 u 到根有 l 个未被标记的左儿子边,r 个未被标记的右儿子边,转移平凡 .

需要根据树深度的限制卡一卡空间 .

时间复杂度 Θ(nV2) .

posted @   yspm  阅读(44)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2022-04-26 知识落差限制想象力(密码是学校提高 OJ 的 IP)
😅​
点击右上角即可分享
微信分享提示