首页 > 其他分享 >1-2 月杂题选做

1-2 月杂题选做

时间:2023-02-11 20:22:25浏览次数:58  
标签:frac log 记录 线段 提交 杂题 复杂度

Preface

想记录一些有意思的题,结果发现有点难度的题全是 ds。/gg

一些过于板的题或者板子题就不写了。

Text

斐波那契 \(\to\) 矩阵乘法,所以线段树套矩阵乘,每次修改时在懒标记上往前推 \(x\) 次就行了。

时间复杂度:\(O(n\log^2n)\)。

提交记录

构建一个竞赛图,其中有一个结论:将所有点按入度升序排序后,若前 \(n\) 个点的入度和为 \(\frac{n(n-1)}{2}\),且不存在更小的 \(n\) 满足这一条件,则这 \(n\) 个点构成一个强连通分量

简易证明上述结论后就可以得到正解。

一共询问 \(n\) 次。

提交记录

做一个异或前缀和,然后莫队,用桶记录一下区间中的数,每次加入的时候匹配一下即可。

时间复杂度:\(O(n\sqrt n)\)。

提交记录

发现每次交换一个结点左右子树时,影响到的只会是跨越两棵子树的逆序对。

那么就比较是交换逆序对少,还是不交换,然后线段树合并。

时间复杂度:\(O(n \log n)\),空间复杂度:\(O(n \log n)\)。

提交记录

计算 \(p\) 级表亲不如计算它的 \(p\) 级祖先有多少个 \(p\) 级子孙。

然后就是线段树合并。

时间复杂度:\(O(n \log n)\),空间复杂度:\(O(n \log n)\)。

提交记录

看完斜率优化 dp 的日报突发奇想写的。(

以后就当斜率优化 dp 复习题了。

提交记录

迎来了第一道有点思维难度的题

对于点 \(l,r\) 的联通性,可以转化为一个二维平面。

考虑用 \(set\) 维护连通块,若点亮 \(x\) 相当于合并连通块 \([l,x]\) 和连通块 \([x+1,r]\),熄灭 \(x\) 则相反。

因为要查询每个时刻的值,所以考虑求平面上每个点的贡献,可以自己考虑怎么定贡献的值,要注意的是对于每次修改,我们做一个左上角为 \((l,x+1)\),右下角为 \((x,r)\) 的二维平面加。

涉及二维平面加和单点查询,使用树状数组套主席树维护。

时间复杂度:\(O(n \log^2 n)\),空间复杂度:\(O(n \log n)\)。

提交记录

用普通莫队+\(set\) 可以做到 \(O(n\sqrt n \log n)\)。

思考如何优化,发现链表可以预处理出排序后的序列,但只能删除,于是考虑用删除莫队+链表。

时间复杂度:\(O(n\sqrt n)\),被 2log 做法吊打。

提交记录

算一道神题?

题解

在大神 dreamerkk 的帮助下 A 了这题。

解题思路的关键点就在于对一个数进行 \(\textrm{popcount}\) 过后,值域变为 \(\log V\)。

可以用一个置换 \(f\),那么原来的数 \(x:=f(\textrm{popcount}(x)+a)+b\)。

线段树,时间复杂度和空间复杂度都是 \(O(n \log n \log V)\) 的。

提交记录

数据范围限制了线段树做法,所以剩下来做法的就只有 ODT 和动态开点线段树了。

ODT 在这种题里都可以被动态开点线段树替代,而且在其他题中容易被卡,码长也相较线段树来说较长,所以我个人认为 ODT 可能不太重要。

使用 ODT 实现的提交记录

懒得写了。

题解

之前忘做的一道分块经典题。

如果是普通的分块,一块一块地合并出各数出现的次数是 \(O(n)\) 的,这样做显然不现实。

所以考虑预处理出所有块的边界端点组成的区间的众数与区间中各个数出现的次数。

如果设块长为 \(\frac{n}{B}\),那么这种区间一共有 \(B^2\) 个,所以时间复杂度为 \(O(nB^2 + \frac{nm}{B})\)。

取 \(B\) 为 \(n^\frac{1}{3}\),时间复杂度为 \(O(n^\frac{5}{3}+mn^\frac{2}{3})\)。

提交记录

标签:frac,log,记录,线段,提交,杂题,复杂度
From: https://www.cnblogs.com/kowenxrz/p/17112350.html

相关文章

  • 2月杂题
    叠甲:本博文中出现所谓难度评价大部分为作者自己根据自己的水平以及其评分所认定的难度,含有较大主观性,仅供参考,切勿当真。作者菜菜,可能会收录很傻逼/一眼的题目,只是一个类......
  • 2月杂题
    1.P3920[WC2014]紫荆花之恋离线怎么做?考虑把点分树建出来。在线怎么做?考虑定期重构,暴力查散点,跳点分树查整点。2.CF1063FStringJourney\(O(n\sqrt{n})\):观察到答......
  • 杂题选做:数论(一)
    早期shitpost重修。P1835素数密度求区间\([L,R]\)内的素数个数。\(1\leL\leR<2^{31},R-L\le10^6.\)如果\(x\)是合数,那么\([2,\sqrtx]\)范围内一定存在......
  • SAM杂题
    现在是SAM什么都不会了的状态。所以打算搞字符串。差不多就是从头开始学SAM,但是全是题。我觉得得一半多都是代码。P2408不同子串个数回忆一下SAM中每个节点的子串......
  • 网络流杂题+不多的归纳
    照着ppt写博客的时代应是一去不复返了,借不同题目阐述基本思想当为至道。转个链接:https://www.cnblogs.com/SYCstudio/p/7260613.html,这篇笔记写得很好。引入题目之前,阐......
  • USACO2022 OPEN【杂题】
    A.[USACO22OPEN]262144RevisitedP对于一个长为\(m\)的序列\(b\),如下定义其权值:对其进行\(m-1\)次操作,每次选择相邻的两个数合并,合并后将其替换为一个大于两数最......
  • 组合杂题选讲 #8
    问题描述题意:现在有\(n\)个人要成立若干个社团(一个人可以属于多个社团,也可以不属于任何社团)满足没有两个社团包含的成员完全相同;存在一个整数\(t\),使得任意两个不同......
  • Trick 11:区间 DP 杂题选讲
    大家好,下面讲的题目一个都不会,但是我脸皮很厚,所以分享给大家了。搁前面说一句:做题的时候能不能别丢掉这个算法啊!试一下啊!Pro.1P7914这是一个练手题。我们先来说说括号......
  • 杂题选做-2B (人类智慧)
    1.\(\color{blue}{CF1762D}\)GCDQueries\(gcd(a,b)=gcd(a,c)\)则\(a\neq0\)\(gcd(a,b)<gcd(a,c)\)则\(b\neq0\)随便用个队列维护一下就做完了。hint:题目只......
  • [做题计划1~10] 杂题乱选
    $\text{Case0}$:[是否自主完成][题目难度]时间:完成细节。$\color{red}\text{Case1}$:$\color{purple}\text{P1117[NOI2016]优秀的拆分}$2022.12.1killed[不会,但......