Solution Set -「NOIP Simu.」20221024
\(\mathscr{A}\sim\) 断
给定一棵含有 \(n\) 个点的树, 所有点初始时为白色. 再给出 \(m\) 个形如 \((u,v)\) 的点对, 要求 \(u\) 到 \(v\) 的简单路径上存在至少一个黑点. 求最少将多少个点涂黑, 给出一组方案.
\(n,m\le2\times10^6\).
Tag:「水题无 tag」
随便选个根, 然后递归构造, 能不涂黑就不黑. 可以容易做到 \(\mathcal O(n+m\log n)\), 卡卡常能过. 如果写个四毛子求 LCA 可以做到 \(\mathcal O(n+m)\).
\(\mathscr{B}\sim\) 数
称一棵含有 \(n\) 个点, 以 \(1\) 为根的有根树合法, 当且仅当对于 \(u\in[1,n)\), 都有 \(|p_u-p_{u+1}|=1\), 其中 \(p_u\) 表示 \(u\) 的父亲, \(p_1=0\). 求所有合法树中, 点 \(k\) 的孩子数量和. 答案模 \(998244353\).
\(n,k\le2\times10^6\).
Tags:「A.数学-数学推导」「B.模型转化」
若按标号升序确定每个结点的父亲, 那么点 \(u\) 的位置选取只于 \(p_{u-1}\) 有关. 此时有一个简单的 \(\mathcal O(n^2)\) DP: \(f(i,j)\) 表示考虑了前 \(i\) 个点, \(p_i=j\) 时合法树的数量, \(g(i,j)\) 表示考虑了前 \(i\) 个点, \(p_i=j\) 时点 \(k\) 的孩子总数, 可以 \(\mathcal O(1)\) 转移.
接下来的一步也很自然: 以 \(f\) 的转移为例, 设一次转移由 \((i,j)\) 贡献向 \((i',j')\), 此时必然有 \(i'-i=1\), \(j'-j=\pm 1\), 转移系数为 \(1\), 因此这就是在坐标轴上画一条折线, \(f\) 的值就是某种折线的方案数.
有了这个观察, 更细致的描述便是: \(f(i,j)~(i>1)\) 表示从 \((2,1)\) 出发, 走到 \((i,j)\), 仅使用位移 \((1,\pm 1)\), 且不触碰 \(y=0\) 的折线数量. 对应的, \(g\) 则描述了所有折线于 \(y=k\) 的交点数量之和. 我们只需要求出这个和即可.
直接枚举交点位置 \((x,k)\), \((2,1)\to (x,k)\) 的方案数就是 Catalan 数, \((x,k)\to (n,\star)\) 的方案数是一堆 Catalan 数之和, 其实就是杨辉三角第 \(n\) 行上的一段前缀减一段后缀. 如果降序枚举 \(x\), 所求前后缀的长度每次变化量不超过 \(1\), 而组合数行区间和很好递推 --- 将上一行的和 \(\times2\), 再修补边界上常数个值就能得到这一行的和. 这样的递推可以 \(\mathcal O(1)\) 完成. 最终算法复杂度为 \(\mathcal O(n)\).
\(\mathscr{C}\sim\) 覆 *
有 \(n\) 个集合 \(S_{1..n}\), 初始全空. 给出 \(m\) 次操作, 每次操作形如:
- 给出 \(l,r,c\), \(\forall i\in[l,r]\), 令 \(S_i\gets S_i\cup\{c\}\).
- 给出 \(l,r\), 求出 \(\left|\bigcup_{i=l}^rS_i\right|\).
\(n,m\le10^5\).
Tags:「A.分治-CDQ 分治」「B.离线」
被离奇的 \(32\text{Mib}\) 空限整得胡思乱想, 但你看我没把这事儿写在数据范围里说明其中并不重要 qwq.
"包含某个元素" 并不好简单表示, 但 "不包含某个元素", 也即是 "处于这个元素的某个空白区间", 再考虑上时间轴, 就是一个三维偏序样的贡献. 用类似 Chtholly Tree 的东西维护每种元素的空白区间, 在空白区间变更时作为三维偏序的事件加入队列. 最后对事件队列做一个 CDQ 分治算出答案即可. 复杂度 \(\mathcal O(m\log m\log n)\).
\(\mathscr{D}\sim\) 构
给定 \(n\), 构造一个 \(\{a_n\}\), 使得 \(a_i\) 恰为 \(i-1\) 在 \(\{a_n\}\) 中的出现次数.
\(n\le2\times10^6\).
Tag:「A.构造」
一道标准的, 写个暴搜就会正解的构造.
暴搜告诉我们: \(n=1,2,3,6\) 无解, 其他 \(n\le10\) 有解; 当 \(n\ge7\) 的时候容易看出规律:
\]
结束了. 当然是 \(\mathcal O(n)\) 的.
Solution Set -「NOIP Simu.」20221024的更多相关文章
- 「NOIP 2017」列队
题目大意:给定一个 $n times m$ 的方阵,初始时第 $i$ 行第 $j$ 列的人的编号为 $(i-1) times m + j$,$q$ 次给出 $x,y$,让第 $x$ 行 $y$ 列的人 ...
- 「NOIP 2020」微信步数(计数)
「NOIP 2020」微信步数(Luogu P7116) 题意: 有一个 \(k\) 维场地,第 \(i\) 维宽为 \(w_i\),即第 \(i\) 维的合法坐标为 \(1, 2, \cdots, ...
- Diary / Solution Set -「WC 2022」线上冬眠做噩梦
大概只有比较有意思又不过分超出能力范围的题叭. 可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics 任意一个 ...
- Solution Set -「ARC 107」
「ARC 107A」Simple Math Link. 答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...
- 「NOIP 2013」 货车运输
题目链接 戳我 \(Solution\) 这一道题直接用\(kruskal\)重构树就好了,这里就不详细解释\(kruskal\)重构树了,如果不会直接去网上搜就好了.接下来讲讲详细过程. 首先构建\ ...
- Solution Set -「ABC 217」
大家好屑兔子又来啦! [A - Lexicographic Order] 说个笑话,\(\color{black}{\text{W}}\color{red}{\text{alkingDead} ...
- Note -「动态 DP」学习笔记
目录 「CF 750E」New Year and Old Subsequence 「洛谷 P4719」「模板」"动态 DP" & 动态树分治 「洛谷 P6021」洪水 「S ...
- Note -「Lagrange 插值」学习笔记
目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...
- Solution -「ARC 104E」Random LIS
\(\mathcal{Description}\) Link. 给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...
- LOJ #2026「JLOI / SHOI2016」成绩比较
很好的锻炼推柿子能力的题目 LOJ #2026 题意 有$n$个人$ m$门学科,第$ i$门的分数为不大于$U_i$的一个正整数 定义A「打爆」B当且仅当A的每门学科的分数都不低于B的该门学科的分数 ...
随机推荐
- 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc
本文基于 Netty 4.1.112.Final 版本进行讨论 在之前的Netty 系列中,笔者是以 4.1.56.Final 版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本 4.1.112 ...
- 从入门到放弃,我们为何从 Blazor 回到 Vue
在我们团队的开发历程中,C# 和 .NET 框架一直是我们的主力语言,伴随我们走过了无数个项目.当微软推出 Blazor 这一革命性的框架时,我们对其充满了期待.Blazor 以其优良的架构和微软的强 ...
- 你的第一个Solana SPL
简介 TFT 你的第一个SPL The first token 技术栈和库 Rust Anchor框架 Typescript(测试) 开发环境和其它网络地址 DevNet: https://api.d ...
- 2.8 忘记root账户密码怎么办?
Linux 的单用户模式有些类似 Windows 的安全模式,只启动最少的程序用于系统修复.在单用户模式(运行级别为 1)中,Linux 引导进入根 shell,网络被禁用,只有少数进程运行. 单用户 ...
- delphi Image32 变形控制
先看动画: 代码: 1 unit uFrmTransform; 2 3 interface 4 5 uses 6 Winapi.Windows, Winapi.Messages, System.Sys ...
- P4229 某位歌姬的故事
P4229 某位歌姬的故事 处理复杂点的 dp 题. 思路 先考虑 \(n\) 比较小的情况,把每个询问放到线段上,发现每个格子只能满足覆盖最小的限制,于是考虑将询问有效区间排序考虑. 设 \(f[i ...
- markdown小小白常用语法
第一次用vscode写笔记去同步Cnblog,不知道写啥就记点常用的md语法吧 1. 标题怎么写? 利用"#" + " " 即可实现第几节标题(其中'/',表转 ...
- 基于nginx的tomcat负载均衡和集群(超简单)
今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点. 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法. 要集群t ...
- golang之循环导包
作为一个 Golang 开发,你可能在项目中遇到过包的循环依赖问题.Golang 不允许循环依赖,如果检测到代码中存在这种情况,在编译时就会抛出异常. 循环依赖 假设我们有两个包:p1和p2.当包p1 ...
- 一款开源、免费、美观的 Avalonia UI 原生控件库 - Semi Avalonia
前言 最近发现DotNetGuide技术社区交流群有不少小伙伴在学习Avalonia,今天大姚给大家分享一款开源.免费.美观的 Avalonia UI 原生控件库:Semi Avalonia. Ava ...