常用小技巧

  1. 定义对于一个区间 [l,r] 中不存在 llrr 满足 mex(l,r)=mex(l,r) ,则称这个区间为“好的区间” 。好的区间只有 O(n) 个。
    证明:不妨设 al>ar ,显然有 al<mex(l,r) ,假设对于以 l 为左端点存在另一个好的区间 [l,r] 满足 r>ral>ar ,则 ar<al<mex(l,r) ,说明 ar 一定已经在 [l,r] 中出现过了,一定不会产生有效贡献,因此 [l,r] 不可能是一个“好的区间”
    而对于 al<ar 的情况同理,只需固定右端点即可

  2. 把一个完全二叉树划分成若干个满二叉树最多只有 O(logn)

  3. 判断一个二叉树为满二叉树:根一直往左走的深度和一直往右走的深度距离是否相同

  4. 分块把大块按照第一维度排序,小块按照第二维度排序,可以在线处理二维偏序问题

  5. 在遇到要求前 k 大但 k 很小的情况时,一种好些的做法时直接用 set 维护,例题:P8817 [CSP-S 2022] 假期计划

  6. 强连通的竞赛图始终有哈密顿回路,而且不少(意思是可以直接暴力求,复杂度不会太高)

posted @   FOX_konata  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示