[CF 1906J] Count BFS Graph

news/2025/4/1 22:44:08/文章来源:https://www.cnblogs.com/YzaCsp/p/18796627

前言

注意到这个题没想到点子上, 于是进行记录

思路

分析题目 + 基本性质

不难想到借用 \(\rm{bfs}\) 树来解决
于是深度分析 \(\rm{bfs}\) 树的性质

首先是原图中究竟哪些边影响了 \(\rm{bfs}\)
不难发现对于点 \(u\), 对于其 \(\rm{bfs}\) 树上的父亲 \(v\), 对于 \(\rm{bfs}\) 序上 \(v\) 之前的点, \(u\) 都不能和其相连

其次就是对于点 \(u\), 它的儿子有什么性质
不难观察到其儿子们一定是一个 \(\rm{bfs}\) 序上的连续段, 但是还有一个重要性质, 即这些儿子的编号应当是递增的

因此问题转化为求所有合法的 \(\rm{bfs}\) 树, 并要求在过程中维护方案数

转化用于做题

不难发现维护点 \(u\) 时, 我们应该需要知道其 \(\rm{bfs}\) 树上的父亲 \(p\)\(\rm{bfs}\)
于是设计 \(f_{u, p}\) 表示当前维护到了点 \(u\), 其 \(\rm{bfs}\) 树上的父亲为 \(p\) 的方案数
怎么转移?

不难发现 \(f_{u, p}\) 应当由其 \(\rm{bfs}\) 序上的前一个转移而来, 记为 \(v\)
但是 \(v\)\(u\) 不一定是一个父亲, 如果 \(A_u \geq A_v\), 那么是可以并入一个父亲 \(p\) 的, 否则只能是 \(p\) 的前一个位置 \(p'\)

然后就出意外了

「否则只能是 pp 的前一个位置 pp'」 是否正确

显然是不正确的, 例如这种情况
pErSIRH.png

也就是说, 只要 pp'pp 是同段的, 就行

正确转移

这样我们可以写出一个转移

\[f_{i + 1, k} \gets \sum_{k \in [j, nxt_j+1]} ​2^{j−i−1} \times f_{i, j} \]

不难发现前缀和可以优化到 \(\mathcal{O}(n^2)\)
具体不是这个式子, 但是就是这么个意思

总结

拿几个维度表示状态的 \(\rm{dp}\), 往往根据需要的信息设计状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906779.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible ERROR: Ansible requires the locale encoding to be UTF-8; Detected 936.

语言 区域设置 Beta版:使用Unicode UTF-8提供全球语言支持

DBeaver使用教程

sql语句生成测试数据: 我们在填写测试数据时,一个个人为填写数据,比较耗时,我们可以执行sql语句来帮我们实现这部分: 1.找到我们需要填写测试数据的表,在这里我们以goods为例:2.右键该表,找到控制台:3.输入sql指令,然后执行sql语句: sql语句可以让ai生成,也可以在这…

苍穹外卖技术点

完善登录功能 1 员工表中的密码是明文存储,安全性太低 解决办法对前端提交的明文密码进行MD5加密后再与数据库中的密码进行对比。 利用SPring框架自带的工具类DigestUtilspassword= DigestUtils.md5DigestAsHex(password.getBytes());2 新增员工时,若录入的用户名已存在,抛出…

HackTheBox-Linux-Brainfuck

HTB-Linux-Brainfuck OSCP预备线路box1brainfuck 一、攻击流程:使用nmap进行探测开放端口和服务。 sudo nmap --min-rate=1000 -sT -sC -sV [target]通过上图可以看出,有22端口的ssh服务、25端口的ftp端口、,然后我们将爆出的域名放入host文件中。不过要注意,首先host文件在…

技术篇!Air8201如何使用LuatOS进行电源管理功能~

本文将从系统架构、API接口、实战配置三个维度,解析如何利用LuatOS实现Air8201的智能电源管理,从而延长设备寿命并降低能耗成本。 一、电源管理介绍 电源管理是电子设备中非常重要的一部分,尤其是在移动设备和嵌入式系统中。它直接关系到设备的能效、续航时间和整体性能。以…

一篇搞定!如何使用Luatools工具烧录一个具体的项目到Air780EPM核心板中

在物联网(IoT)项目开发中,将编译好的固件程序成功烧录至目标硬件是决定项目成败的关键环节。本篇文章重点介绍如何使用Luatools工具烧录一个具体的项目到Air780EPM开发板中。 一、准备好项目文件 在烧录项目文件到Air780EPM开发板之前,你需要准备好以下几种项目文件: 1. 内…

快速上手!Air780EPM:LuatOS物联网开发入门指南~

在物联网开发领域,选择合适的硬件平台与操作系统是项目成功的关键。本文将带领你从零开始,通过详细的步骤与示例代码,掌握Air780EPM与LuatOS的入门开发流程,并深入探讨其核心功能与扩展潜力。 一、必须先要告诉你的一些废话 这里,先要告诉你一些前提条件,虽然听着像是废话…

Qwen2.5-Omni技术报告

摘要 在本报告中,我们介绍了Qwen2.5-Omni,这是一种端到端的多模态模型,旨在感知包括文本、图像、音频和视频在内的多种模态,并同时以流式方式生成文本和自然语音响应。为了实现多模态信息输入的流式处理,音频和视觉编码器采用了分块处理方法。该策略有效地分离了对多模态数…

若依(ruoyi)前后端分离项目集成积木报表

若依(ruoyi)前后端分离项目集成积木报表 致敬: 1:致敬若依开源项目(本文使用的是前后端分离版本)若依官网:https://www.ruoyi.vip/2:致敬积木开源项目积木报表官网:https://www.jimureport.com/3:致敬CSDN大神的文章(我是根据他的原文一步步配置的,如有版权问题,可随…

k8s部署HA高可用集群

1.初始化系统 2.内存升级 3.安装k8s组件 4.编译kubeadm,修改永久证书授权 5.将kubeadm拷贝到两台master上,然后/usr/bin/kubeadm备份,将新编译的kubeadm 6.部署keepalived 7.初始化k8s 【master1】 7.1 编写kubeadm-config.yaml cat kubeadm-config.yaml apiVersion: kubead…

engine2x_低代码系统快速配置表格的xx列固定并且不随着x轴的滚动而滚动

代码:var is_long_width = false;//定义标识//数据列表的回调 function get_portal_data_list_done_back() {if (is_long_width === true) {find_element_by_class("table-set").css("position", "sticky").css("right", 0).css(&quo…

上下界网络流

上下界网络流 上下界流就是在普通的网络中加了下界。却还是要对于非源汇点,满足入流=出流,于是可能存在不合法的情况。 基础款 无源汇可行流 就是:对于每个点,入流 = 出流对于每条边,流量 $\in $ 合法区间我们先满足其下界,但这样可能出现入流 \(\ne\) 出流的情况,于是在…