首页 > 其他分享 >杂题(二)

杂题(二)

时间:2025-01-13 21:22:03浏览次数:1  
标签:子树 祖先 线段 李超 栈序 哈希 杂题

要退役做一些自己感觉好久没做过或者没学过的题。

P6626 [省选联考 2020 B 卷] 消息传递

套路点分治,把询问挂在点上,然后就是每次处理跨越重心的路径,贡献到目前的每个点上。

P2664 树上游戏

对颜色进行计数,乍一看不可做,但是经过推导之后发现可以直接上点分,路径贡献到点上,差分,用 dfs 去除一些多余颜色贡献。

CF715C Digit Tree

不想多说,煞笔至极,直接记模 \(M\) 余数,然后一个数的后半段匹配前半段,正好要 \(10\) 的逆元。

P4075 [SDOI2016] 模式字符串

上点分,中间一段显然用哈希,其他完全是 \(S\) 的部分直接 DFS 记录 \(|S|\) 级父亲到这里是否合法即可,记录祖先哈希就行。不想写了。

P2305 [NOI2014] 购票

写几个做法。

第一个是有根树点分。先处理根的子树,然后剩下子树就是这个分治中心到根这条链的贡献,可以扫描线上李超线段树维护转移。

第二个是直接树剖,树剖成 \(O(\log n)\) 个前缀和 \(1\) 个区间,区间用线段树套李超线段树,前缀扫一遍李超线段树就行。

第三个用出栈序作为线段树套李超线段树的下标,发现对于目前这个点,只有祖先没有出栈,也就是说访问过的点中,只有祖先在该点出栈序之后,并且能够发现祖先是按顺序排的,也就是说可以直接用 目前的点的出栈序 到 目标祖先的出栈序 这个区间进行转移。

CF1746F Kazaee

挺离谱的。随机映射 \(t\) 次 \(x\to d_x\),其中 \(d\) 是随机的一个序列,每次检验区间和是否是 \(k\) 的倍数。可以理解为每次均匀分布,所以出错概率是 \(\frac{1}{k^t}\),取 \(t=30\) 大概一定能过了。但是如果你写的不是二分离散化那有可能被卡哈希表需要卡常。

P4899 [IOI2018] werewolf 狼人

某个点分树博客应该会用到这个题的做法。

建立两棵 Kruskal 重构树(因为是点权所以把点权拍到边权上,注意取 \(\min\) 或 \(\max\)),一个最小,一个最大。找到最大树中 \(S_i\) 可到的所有 \(\geq L\) 的点和最小树中 \(E_i\) 可到的所有 \(\leq R\) 的点,显然这是两棵子树。只需要这两棵子树 \(\leq n\) 的点集部分有交即可。在第一棵树上 dsu,然后第二棵树 BIT 维护子树和即可。

标签:子树,祖先,线段,李超,栈序,哈希,杂题
From: https://www.cnblogs.com/xingyuxuan/p/18646457

相关文章

  • 杂题选记
    在网上天天划水刷面经,见到teaser就记下来。我的想法是,把8L倒入3L,把3L倒入5L,把8L倒入3L,把3L倒入5L,这时候三个瓶子分别有1L(8L)2L(3L)5L(5L)括号里面表示瓶子最开始的容量。这时候把1L水倒掉,把容积为8L的瓶子里面的2L水倒到容积为3L的瓶子里面,再把容积......
  • 2025.01.10 杂题记录
    2025.01.10杂题记录CF1998E2这题是求能否吃完,而不是最多吃多少个。首先如果\(x=n\),那么是经典问题,每次往左右二分一个位置扩展,每次扩展两次和都会翻倍,复杂度就是\(O(n\logn\logV)\)。我们考虑每个起始点对每个\(f(i)\)的贡献。我们每次应当优先往左扩展,如果扩展不了,往......
  • 『杂题总结』Day11 略解
    前言只闻花香,不谈悲喜。饮茶颂书,不争朝夕。对BZ的题目彻底失望了,开始自己瞎搞了。1.CF2057E2标签:\(\textbf{Floyd}\)。首先先考虑朴素做法。考虑每次询问二分答案,边权比\(\text{mid}\)小的边当作\(0\),否则当作\(1\)。如果\(a\tob\)的最短路\(\lek\),那么就是合......
  • atcoder 杂题 #05
    atcoder杂题#05abc340_gLeafColorabc340_fF-S=1abc361_gGoTerritoryabc386_fOperateKabc340_g独立想出了这道题。如果我们确定了子图的叶子,那么这个子图就确定了。又由于叶子的颜色要相同,所以每种颜色的贡献是互相独立的。首先如果一种颜色有\(x\)个点,那......
  • 省选集训杂题乱写
    碎碎念不去做专题做这个是吧?......
  • 杂题选做3
    杂题选做3QOJ2618三个节点还是不好做,考虑仅有两个节点\(x_1,x_2\)该怎么做?我们可以使用动态规划法来解决这个问题:设\(f_{i,j}\)表示还有\(j\)秒,此刻\(x_1-x_2=i\)的概率,转移可以枚举当前会发生的每一种状态:\[f_{n,m}=\dfrac{1}{3}f_{n,m-1}+\dfrac{1}{3}(\dfrac{p}{10......
  • 省选集训 day 1 数据结构杂题
    A比较套路的题目,第一次见还是有难度的。关于\(+1\)的更改,事实上是找到二进制下极长的末尾\(1\)段并进位。考虑使用Trie维护这个操作,相当于建立一颗从低位开始的Trie,然后swap儿子并进入swap后的新左子树递归操作。然后对于邻域的问题,一般考虑每个点单独维护其儿子,然后特......
  • atcoder 杂题 #04
    atcoder杂题#04abc126_fXORMatchingarc081_dFlipandRectanglesarc080_cYoungMaidsabc383_gBarCoverabc126_f挺有意思的一道题,让我猜到结论了。由于长度是值域的两倍,所以不难想到每个数出现两次,不然发现对于\(a_i=a_j=a_k\)的三个数,当\(a_i\oplus\cdots\op......
  • 24.9~11 好题 & 杂题记录
    构造题&交互题不必最优化的题目加入一些更严的限制会更好做【1,4,5】递归思想or将大问题分解成小问题拼接起来【6】\(A\toB\LeftrightarrowA\toC\toB\LeftrightarrowA\toC(C\toA),B\toC(C\toB)\)【2,3】正难则反,特别是后面限制严格强于前面的【8】只要多种方......
  • atcoder 杂题 #03
    atcoder杂题#03arc189_bMinimizeSumabc227_fTreasureHuntingarc189_dTakahashiisSlimearc067_eGroupingarc189_b题目大意:数轴上有\(n\)个点\(x_i\),每次可以选择连续递增四个点,记\(M\)为第一个和第四个点的中点,把第二个和第三个点关于\(M\)对称,问不断操作......