\(2024.1.29-2024.2.4\)

\(\color{royalblue}{P5903}\)

树上 \(k\) 级祖先模板,长链剖分。

\(\color{blueviolet}{CF1009F}\)

长链剖分优化 DP 板子,每次继承重子节点信息,指针处理下下标平移,剩余节点暴力合并,复杂度线性。

\(\color{blueviolet}{P5904}\)

长链剖分优化 DP。

设 \(f_{i, j}\) 表示节点 \(i\) 字数内距 \(i\) 距离为 \(j\) 的点的个数。

设 \(g_{i, j}\) 表示满足一下条件的无序点对 \((x, y)\) 个数,\(i\) 子树外若存在距 \(i\) 距离为 \(j\) 的节点 \(z\),则 \((x, y, z)\) 是一组合法三元组。

边转移边统计答案,简单乘法原理处理即可。

\(\color{blueviolet}{P3441}\)

长链剖分优化贪心。

显著的,直径肯定要选,然后每次选的时候肯定跨直径最优,如果存在两对不跨直径的点对,显然可以转换为两个跨直径的点对。

把直径一端拎起来当根节点,然后取最长的 \(2m - 1\) 个长链即可。(因为发现上文说的那个东西和取叶子节点覆盖是等价的。)

\(2024.2.5-2024.2.11\)

\(\color{black}{CF1381D}\)

比较简单的一道(跟高深题目相比)。

如果存在一个点蛇可以到达,并且这个从这个点出发有三条不相交(除了这个点)并且长度不小于蛇的路径,那么蛇可以在这个点调头,即答案为 YES

充要性较为显著。

如果可以到达其中一个可行点,那么剩余的可行点显然都能到达,所以以一个可行点为跟尝试判断,当蛇可以调整为首尾有祖先关系时则可行。

可以换根 DP 求一下合法的点,然后预处理每个节点子树内最深的(叶子)节点,贪心地每次将蛇的一端调整至子树内最深点,再调整另一端,直到合法或者循环。

\(2024.2.12-2024.2.18\)

\(\color{black}{CF671E}\)

高深题,题解咕咕咕了,大体思路即从前缀和入手进行大小比较,式子改造后线段树维护。

\(\color{black}{CF1558F}\)

用到一个 Trick,将值域降低为 \(0/1\),将每一个数归为的最大操作次数即答案。

枚举分界点,每次将一个 \(1\) 变为 \(0\)。先考虑固定不变的时候操作次数是如何变化的,显然一个 \(0\) 要归位要么把前面的所有 \(1\) 都走一遍,要么被挤在上一个 \(0\) 后面,等前一个归为后再归为当前这个 \(0\)。分两种取值维护最大值即可,变化显然可以用线段树维护。

\(\color{black}{CF1693E}\)

神秘题,咕咕咕。

\(2024.2.19-2024.2.25\)

\(\color{black}{CF526G}\)

经典结论,如果选尽量选叶子节点,并且一定会选到一个直径端点,直接将直径端点拎出来维护两棵树。

然后就是长链剖分优化贪心,如果询问节点不包括在最优选择中有两种调整方式:

  1. 去掉最短长链贡献,选择当前节点子树内最深叶子重新计算贡献。
  2. 找到当前节点第一个已经在路径内的祖先,去掉祖先子树内已经被选择的叶子节点(这种情况最优当且仅当找到的这个祖先节点子树下选择了一个叶子节点,因此不用考虑会影响答案),选择当前节点子树内最深叶子节点。

贡献维护是简单的,用叶子节点代表一条重链,维护一下子树内最深节点,维护下节点深度,需要一定码力。

\(\color{blueviolet}{CF1916F}\)

比较巧妙的题。

保证了没有割点,是重要的性质。

考虑维护两个点集 \(S_1, S_2\),\(S_1\) 初始为空,\(S_2\) 初始包含图中所有点。

每次尝试寻找一个在 \(S_2\) 的导出子图中不为割点并且与 \(S_1\) 集合中的点相连的点,从 \(S_2\) 移动至 \(S_1\)(第一次随意),并把与此点相连的所有点打上标记,便于判断是否与 \(S_1\) 集合中的点相连。

正确性较为显然,不难证明一定存在这样的点,反证法即可。

「Log」做题记录 2024.1.29-的更多相关文章

  1. Solution -「基环树」做题记录

    写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画 ...

  2. Sam做题记录

    Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...

  3. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  4. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  5. 「BZOJ2510」弱题

    「BZOJ2510」弱题 这题的dp式子应该挺好写的,我是不会告诉你我开始写错了的,设f[i][j]为操作前i次,取到j小球的期望个数(第一维这么大显然不可做),那么 f[i][j]=f[i-1][j ...

  6. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  7. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  8. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  9. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  10. 「CQOI2006」简单题 线段树

    「CQOI2006」简单题 线段树 水.区间修改,单点查询.用线段树维护区间\([L,R]\)内的所有\(1\)的个数,懒标记表示为当前区间是否需要反转(相对于区间当前状态),下方标记时懒标记取反即可 ...

随机推荐

  1. NumPy学习3

    继续学习NumPy,今天学习以下3个章节: 7,NumPy高级索引 8,NumPy广播机制 9,NumPy遍历数组 numpy_test3.py : import numpy as np ''' 7, ...

  2. 【Guava工具类】Strings&Ints

    String相关工具 Strings Guava 提供了一系列用于字符串处理的工具: 对字符串为null或空的处理 nullToEmpty(@Nullable String string):如果非空, ...

  3. 在 ThinkPHP 6 控制器中使用文件锁机制

    创建锁管理类 首先,创建一个锁管理类来处理文件锁: namespace app\common\service; use Exception; class LockManager { private $ ...

  4. CoreOS 手动升级篇

    说到升级...通常肯定会以下2个步骤: 检查是否有新版本. 下载和安装新版本. 在 CoreOS 中也一样,我们先来看下在 CoreOS 中对应的命令: # 检查是否有新版本 update_engin ...

  5. 工具推荐-根据IP地址精确定位经纬度(永久免费)

    今天小张由于业务需求,需要根据用户的访问ip精确定位用户的国家.城市.及经纬度等信息,从网上进行搜索,发现不少的网站,但几乎没有完全符合的,有个别符合的还需要花钱,大家也知道,现在是信息共享的时代,难 ...

  6. C中输入输出

    引入一个概念,对于计算机来说,外来数据都是输入,经过计算机处理的结果并进行显示的就是输出.在linux里面,一切都是文件,就连输入输出,都可以划归到"文件"一类,而为了管理这些文件 ...

  7. 探秘Transformer系列之(30)--- 投机解码

    探秘Transformer系列之(30)--- 投机解码 目录 探秘Transformer系列之(30)--- 投机解码 0x00 概述 0x01 背景 1.1 问题 1.2 自回归解码 0x02 定 ...

  8. GBDT算法原理及Python实现

    一.概述   GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是集成学习中提升(Boosting)方法的典型代表.它以决策树(通常是 CART 树,即分类回归 ...

  9. struts2——Action的三种编写方式

    Action有三种编写方式POJO方式.实现Action接口.继承ActionSupport类 推荐采用继承ActionSupport类这种方式.因为这个类的功能比较丰富. 方式一:POJO方式 pa ...

  10. 【MOOC】JS脚本|便于复制粘贴中国大学MOOC网站的测试题和选项

    文章目录 运行结果 完整代码 可复用的部分 1. 删除指定Class或Id的DOM元素 2. 在页面上添加按钮并绑定事件.添加css.class 3. 等待页面加载完成,运行异步函数 4. 选中某个D ...