省选模拟五 题解

写在前面:

我好菜啊

伯努利数和自然数幂和的式子都能忘

A. 青蛙

标签:

贪心+二分

题解:

首先我们贪心的让尽量多的青蛙免费跳过去,可以二分求出

考虑剩下的青蛙如何让费用最小:

假如免费的青蛙非零,那么一定可以把中间的石头跳完

这种情况下其他每个青蛙的最小花费一定是一次

另一种情况是没有免费的青蛙

直接让花费最小的青蛙把中间的石头跳一遍,其他的花费仍然都为一次

B. 一起自习的日子

标签:

伯努利数

题解:

我们知道伯努利数有两种$B^{-}$和$B^{+}$

其中:

$$\sum\limits_{i=0}^{n}C_{n+1}^{i}B^{-}_{i}=0$$

$$B^{+}_{i}=(-1)^iB^{-}_{i}$$

$B^{-}$和$B^{+}$都可以来表示自然数幂和:

$$\sum\limits_{i=0}^{n-1}i^m=\frac{1}{m+1}\sum\limits_{i=0}^{m}B^{-}_{i}C_{m+1}^{i}n^{m+1-i}$$

$$\sum\limits_{i=1}^{n}i^m=\frac{1}{m+1}\sum\limits_{i=0}^{m}B^{+}_{i}C_{m+1}^{i}n^{m+1-i}$$

C. 字符串

标签:

主席树+$LCT$+$SAM$

题解:

设$ans[R][L]$代表也$R$为右端点的最长贡献

考虑在$fail$树上更新$ans$数组

对于$np$的祖先$p$

对于$L\in[1,last[p]-len[p]]$

$$ans[R][L]=max(ans[R][L],len[p])$$

对于$L\in[last[p]-len[p]+1,last[p]$

$$ans[R][L]=max(ans[R][L],len[p]-L+1)$$

主席树区间对定值/等差数列取max即可

复杂度$O(n^2log_2(n))$

考虑用$LCT$优化:

对于$np$会修改np到根的路径上的$last$值,用$access$实现

对于$nq$会$cut$和$link$某些点

然而我们必须让同一个$Splay$里的$last$全部相同

这样便可以对于一个$Splay$只取出最大的$len$进行一次操作了

所以$LCT$不能简单的$access$

对于$cut$需要分为是否在同一个$Splay$

$link$比较简单直接$Splay$后$fa$接上即可

主席树的区间修改和单点查询其实可以通过二分转化为单点修改和区间查询

原文地址:https://www.cnblogs.com/AthosD/p/12182002.html

时间: 2024-10-06 22:20:34

省选模拟五 题解的相关文章

省选模拟五十六 题解

T1 异或和为0则先手必败 设\(dp[i][j][k]\)代表考虑到\(i\)选了\(j\)个数(对\(d\)取模)异或和为\(k\)的方案数 假如把\(a\)从大到小排序的话便可以剪枝: 第三维是\(2^b\)(b是满足\(2^b>a[i]\)的第一个数) 复杂度\(O(1e7*d)\) T2 设\(f[i][j][k]\)代表从S走k步到T不经过S,T的方案数 \(g[i][j][k]\)代表从S走k步到T的方案数 \(h[i][j][k]\)代表从S走k步到S不经过T的方案数 \(g\)

省选模拟6 题解

A. Yist 首先考虑怎样的情况答案是不收敛的. 操作中涉及到对一个权值非$0$,并且不作除法的点的加法贡献. 因为只要最终的答案,可以想到对每个点作为出边的贡献分别处理. 部分分提示求出第一次迭代的贡献,发现对于每个点,贡献都是一个等比数列,所以只要代入求和公式就好了. 然而暴力做的复杂度是$O(mk)$的,会被菊花图的数据卡掉. 考虑如何优化这个东西,根据套路我们将点按照度数分块. 定义度数大于$\sqrt m$的点为重点,度数小于等于$\sqrt m$的点为轻点. 分别讨论: 对于对轻点

省选模拟七 题解

写在前面: 这次考试的策略还是蛮正确的 发现了$T2$是水题后先开了$T3$的$60pts$暴力 剩下时间连打带调外加考场刚好用完时间 但可惜的是$T1dp$求两点之间最小代价由于转移出环被弃掉了 其实用$bfs$求最小代价就可以$AC$了 实力不济 就没什么好说的 A. 翻转硬币 标签: $bfs+$状压$dp$ 题解: 先对序列差分 问题转化为每次可以同时异或两个点,求最小代价 同时消去两个点的代价可以用$bfs$预处理出来 源点的个数就是差分序列的$1$的个数 有了这个,状态便有了明显的层

省选模拟13 题解

A. 同桌的你 每个人渴望与一个人当同桌. 容易发现这个关系形成内向基环树森林. 问题转化为求基环树森林的最大匹配. 任意选一条环上的边,分别尝试该边为匹配边.非匹配边即可. B. 大水题 一个常用的但想不到的东西:将每种颜色出现次数的差值为定值,转化为对颜色序列差分后相等. 然后暴力的做法是枚举2^8,表示答案出现在指定的颜色集合中,分别将差分数组插入.查询哈希表即可. 下面是一个优化: 容易发现可行的颜色集合对于同一个时刻只有不超过8种. 对于每一个左端点,随着右端点的右移,区间颜色集合改变

省选模拟22 题解

A. 遮天蔽日 学习了计算几何相关的很多新技巧. 求过一点$P$,圆$O$的切线:通过两点距离.半径,用反三角函数可以解得一个角度,然后就可以算了. 求直线$PQ$,与圆$O$的交点:作点$O$关于$PQ$的垂线,通过半径和垂线长度,可以算得垂足与交点的距离,然后就可以算了. 求多边形的重心:任选一点$O$,选择顺时针(逆时针)上相邻的每个点对$(P,Q)$,对横纵坐标分别加权平均,加的权为面积. 公转:使重心旋转,保持每个点与重心的相对位置不变,整个多边形的朝向不变. 因为打的不是正解,所以伪

省选模拟23 题解

这篇题解鸽了. A. Expectation B. Sequence C. Counting 原文地址:https://www.cnblogs.com/skyh/p/12309632.html

省选模拟35 题解

A. two 考虑现在要通过蓝边删掉红边. 其实等价于要找出有哪些红边,满足恰好只有一个端点在蓝边的儿子方向子树中. 考虑对蓝树跑出一个 $dfs$ 序来,那么问题转化为恰好一个端点在给定区间中. 这像是一个二维偏序问题.考虑以线段树下标为其中的第一维,第二维进行排序处理. 然后用一个 $set$ 就可以简单维护了,但是这样做的复杂度是两个 $log$ 的. 考虑一个特殊的操作,开两棵线段树,第一棵以连接两个点中小的 $dfs$ 序为下标,大的为权值,第二棵则相反. 那么问题就转化为取一段前缀或

省选模拟4 题解

A. 点点的圈圈 因为题中保证的特殊性质,容易发现圆之间的关系形成树形结构. 对于每棵子树,选择树的根或者累计所有子树的答案. 问题在于建图,容易发现这个可以用KDTree优化. 考虑将所有的点建在KDTree上. 用每个点的圆覆盖KDTree,当完全覆盖时直接塞入对应点的vector中. 之后DFS一遍KDTree,同时用一个set维护祖先链上所有的vector的集合. set所表示的集合即能覆盖该点的所有的圆. 对于KDTree中每一个点,直接在set中查后继就可以找到他的父亲. B. 点点

省选模拟11 题解

A. 组合数问题 还没想明白如何做,待补. B. recollection 因为原图为trie树,树上两个点的lcp长度等于两个点的lca深度. 考虑通过广义sam来维护两个点的lcs. 树上同时对应着一个$endpos$,树上两个点对应的$endpos$对应的广义sam上节点在后缀树的lca的$len$即为两个点的lcs长度. 所以对于原树上每个点,我们只关注它的子树在后缀树上能形成的$len$最大的lca. 树上$n$个点形成的lca集合,实际上等于dfs序上相邻的两点形成的lca集合. 所