\(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. go time包:秒、毫秒、纳秒时间戳输出

    时间戳 10 位数的是以 秒 为单位: 13 位数的是以 毫秒 为单位: 19 位数的是以 纳秒 为单位: golang 中可以这样写: package main import ( "fmt ...

  2. 算法图解,关于数组,链表,以及大O表示法

    有关数组.链表以及大O表示法 关于数组 [1] 连续性:数组在内存中连续储存,就像是看电影的一群人排排坐. [2] 易读性:数组中的元素可以随意读取. [3] 难改性:由于连续的特性,增减元素都会导致 ...

  3. jupyter -- 数据分析可视化开发工具

    博客地址:https://www.cnblogs.com/zylyehuo/ jupyter介绍 jupyter就是anaconda提供的一个基于浏览器的可视化开发工具 jupyter的基本使用 启动 ...

  4. 什么是集群&集群的分类

    集群(Cluster)    计算机集群简称集群,是一种计算机系统,它通过一组松散集成的计算机软件(和/或)硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中 ...

  5. Anaconda指定目录安装终极指南+避坑大全

    最近被Python环境搞疯了吧?一个项目跑起来另一个就报错?用Conda环境隔离大法就对了!但默认安装竟吃掉根分区8G的硬盘?今天手把手教你迁移安装目录+实战部署AI项目. 今天测试AIREPORT, ...

  6. .NET & JSON

    C# & JSON DataContractJsonSerializer // JsonHelper.cs using System; using System.Collections.Gen ...

  7. vue3第二次传递数据方法无法获取到最新的值

    使用reactive父组件第二次传递给子组件的数据:方法中可以获取到最新数据 <template> <div> <div> <h1>子组件</h1 ...

  8. RocketMQ的Consumer是如何消费消息的

    Rocketmq提供了两种主要的消费模式:推送式消费(Push Consumer)和 拉取式消费(Pull Consumer) 一.Consumer消费消息的基本流程 1.实例化Consumer:创建 ...

  9. 依赖注入的方式( 构造函数注入 、 set 方法注入 、注解注入)

    一.构造函数注入 二.set方式注入 三.集合注入

  10. Asp.net mvc基础(四)其他类型的ActionResult

    ViewResult是ActionResult的子类 1.Redirect 返回值类型:RedirectResult 用法:return Redirect(""); //返回值类型 ...