Solution Set -「NOIP Simu.」20221111
遗忘十字路
Cover:「CF 1746D」Paths on the Tree.
Tag:「C.性质/结论」
最原始的思路自然是 DP. 令 表示从 开始向子树内探险 次的最大收益, 那么每个孩子被探险的次数一定在 中. 猜测需要的 的数量挺小, 直接上记忆化搜索就过了.
后来冷静想想, 可以证明一个 的确最多用上 个 . 利用 std::nth_element
计算转移可以做到每组数据 .
鹿角虫道 *
Cover:「Gym 102331C」Counting Cactus.
Tags:「A.DP-计数 DP」「A.DP-状压/插头 DP」「B.Tricks」
赛上搓了个 类似耳分解的东西, 标算的实际上就是对分解过程做精细优化.
我们先来做一些规定: 如何画出一株仙人掌? 类比于树, 我们可以按 "子仙人掌" 来画. 具体地, 令 表示用点集 构成一棵以 为根的仙人掌的方案. 类比耳分解, 我们可以画圈圈. 令 表示用点集 构成一堆被链 串起来的仙人掌的方案数. 为方便转移, 可以引入辅助状态 和 , 分别表示 是叶子时的方案. 然后浅讨论一下各种转移即可. 复杂度 .
泪水之城
Cover:「Gym 102268I」Interesting Graph.
Tag:「C.性质/结论」
挺好玩儿的题, 但在一个无关紧要的地方把复杂度写假了 qwq.
关于连通块的限制等价于所有点双大小不超过 . 当然求染色数是 NPC, 不过既然 时 Bell 数只有 , 所以可以猜测算法应该是小范围暴力搜索拼大范围树形染色.
点双 ... 先拍一个广义圆方数吧. 对于每个方点, 我们有时间暴力搜索周围圆点的染色情况, 但是如何将这些小规模的情况放到整体上?
先暂停, 我们回忆一下树上染色的结论. 对于含有 个点的树, 其色多项式为 . 怎么推? 根随便选一个颜色, 其他点只要不与父亲同色就行.
回到圆方数. 我们可以这样计数: 从上自下考虑, 每到一个方点时, 其头顶圆点应当已被染色, 搜索周围方点的颜色最小表示, 为孩子方点染色, 然后递归. 立马发现, 这和圆方树的树形根本没关系, 因为每个方点的临域贡献是完全独立的!
一个去方点父亲的方点临域 的色多项式是 , 假设图连通, 那么整张图的色多项式 . 注意这里有 . 一个非常下头的做法是 NTT 卷出来然后多点求值. 组题人的评价是 "你高兴就好".
怎么办? 注意点双大小 , 而 , 我们有端猜测向量 的种类是极少的. 直接按照 对 分类, 每次暴力带入 算出每种 然后带上其出现次数的指数. (忽略枚举点双内部边的时候写假复杂度的情况) 直接过啦!
暴力枚举算一算, 或者 Burnside 一发, 这个本质不同 数不超过 量级, 所以很是正确. 复杂度自己看看吧, 不方便一个式子说清楚.
生命血 *
Cover:「Gym 102268D」Dates.
Tags:「A.拟阵/拟阵交」「A.数据结构-线段树」「B.贪心」
以为是模拟费用流啥的, 然后发现自己根本不会. 加上写完网络流没有充足的时间, 于是就弃了.
好吧, 点开题解: 为方案集合, 为合法方案集族, 为拟阵.
Proof.
遗传性显然, 来看看交换性. 取 , 其中 , 我们需要说明 . 令 , 设在 方案中, 所选取的灯笼编号集合为 . 考虑从 的过程, 每加入一个 , 至多 , 因此 对应的 , 则取这样的一个灯笼和对应于它的 就能增广 .根据拟阵的性质, 将选择按照价值排序, 最优方案一定能通过贪心选取高价值选择生成. 我们需要做的是快速判断某个选择加入集合后集合是否仍然独立. 注意这就是一个 Hall 定理. 令 为 的前缀和, 则 独立当且仅当
区间包含这个条件可以拆开. 令 , , 则独立条件变为
加入一个区间 , 最可能不合法的 自然是包含 的, 此时选择最大的 和最小的 就能检查合法性. 线段树维护这一过程, 可以做到 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-11-11 Solution -「WF2011」「BZOJ #3963」MachineWorks