「Log」做题记录 2024.1.29-
\(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}\)
经典结论,如果选尽量选叶子节点,并且一定会选到一个直径端点,直接将直径端点拎出来维护两棵树。
然后就是长链剖分优化贪心,如果询问节点不包括在最优选择中有两种调整方式:
- 去掉最短长链贡献,选择当前节点子树内最深叶子重新计算贡献。
- 找到当前节点第一个已经在路径内的祖先,去掉祖先子树内已经被选择的叶子节点(这种情况最优当且仅当找到的这个祖先节点子树下选择了一个叶子节点,因此不用考虑会影响答案),选择当前节点子树内最深叶子节点。
贡献维护是简单的,用叶子节点代表一条重链,维护一下子树内最深节点,维护下节点深度,需要一定码力。
\(\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-的更多相关文章
- Solution -「基环树」做题记录
写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画 ...
- Sam做题记录
Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...
- BJOI做题记录
BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...
- 退役II次后做题记录
退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...
- 「BZOJ2510」弱题
「BZOJ2510」弱题 这题的dp式子应该挺好写的,我是不会告诉你我开始写错了的,设f[i][j]为操作前i次,取到j小球的期望个数(第一维这么大显然不可做),那么 f[i][j]=f[i-1][j ...
- UOJ 做题记录
UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...
- project euler做题记录
ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...
- 退役IV次后做题记录
退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...
- 退役III次后做题记录(扯淡)
退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...
- 「CQOI2006」简单题 线段树
「CQOI2006」简单题 线段树 水.区间修改,单点查询.用线段树维护区间\([L,R]\)内的所有\(1\)的个数,懒标记表示为当前区间是否需要反转(相对于区间当前状态),下方标记时懒标记取反即可 ...
随机推荐
- rust学习笔记(6)
模块 定义自己的模块,方便外部的调用 mod可以嵌套 可见程度 分为private和public 其中pub可以分为模块内可见和模块外可见 mod也遵循可见性的要求 // 一个名为 `my_mod` ...
- Kubernetes:根据进程 Pid 获取 Pod 名称
前言 在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程.有没有办法可以根据进程 PID 快速找到 Pod 名 ...
- Dicom纯js的三维重建影像浏览器
主要功能介绍 实现通过浏览器浏览Dicom影像阅片.主要功能: 支持标准DIcom影像的2D浏览,预设窗位,伪彩,序列间,序列内多种布局方式. 影像处理,提供影像翻图.缩放.移动.透镜.反相.旋转.截 ...
- bug|jest|vue|记录:关于【4-4 使用 TDD 的方式开发 Header 组件(1)】05:26时的运行测试用例出错的问题
错误情景 提示 jest 配置错误 Configuration error Configuration error: Could not locate module @/components/Hell ...
- 【python-日期和时间处理】datetime模块基本使用
1. 获取datetime对象 获取当前datetime对象 方法:datetime.now(cls, tz=None) -> datetime 参数说明: tz:时区信息,不传该参数时,默认使 ...
- Obsidian 笔记一键转换发布为 Jekyll 博客
Obsidian 是一款功能强大且灵活的知识管理和笔记软件,与 Jekyll 这一轻量级静态博客框架的结合,既能保留 Obsidian 的网状知识关联优势,又能借助 Jekyll 的高效编译能力快速生 ...
- 【手机】三星手机刷机解决SecSetupWizard已停止
三星手机恢复出厂设置之后,出现SecSetupWizard已停止的解决方案 零.问题 我手上有一部同学给的三星 GT-S6812I,这几天搞了张新卡,多余出的卡就放到这个手机上玩去了.因为是获取了ro ...
- C#多线程编程(二)线程池与TPL
一.直接使用线程的问题 每次都要创建Thread对象,并向操作系统申请创建一个线程,这是需要耗费CPU时间和内存资源的. 无法直接获取线程函数返回值 无法直接捕捉线程函数内发生的异常 使用线程池可以解 ...
- pnpm create vite my-react-app --template react-ts
npm install -D pnpm npm install -D vite pnpm create vite my-react-app --template react-ts npx vite - ...
- 🎀截图工具推荐-Snipaste
简介 Snipaste 是一款非常强大且免费的截图和屏幕标记工具,由一位来自中国的开发者开发.它以其简洁的界面和丰富的功能而受到广泛好评. 官网 https://zh.snipaste.com/ Sn ...