08.21总结

圆方树

引入

我们注意到,树结构相比普通图具有诸多优良特性。若能将在无向图上求解的问题转化为树结构问题,往往能大幅简化求解过程。圆方树正是实现这一转化的有效工具。

定义

我们称原图中的点为"圆点"。通过引入方点并调整边的关系,可以构造出一棵树。通过合理赋权,使这棵树能够保持原图的某些特性,从而将原问题转化为树上的问题。具体构建过程如下:对于每个点双连通分量,首先删除其中所有圆点之间的直接连接边。然后为该点双新增一个方点,并将该点双内的所有圆点都与这个方点相连。这样构建出的图是一个无环的连通图,即所谓的圆方树。构建过程本身并不复杂,只要掌握点双连通分量的求法即可完成。而难点在于:如何恰当设置权值,使得在圆方树上能够求解原问题。

代码

void tarjan(int u, int fa) {low[u] = dfn[u] = ++tot;sta.push(u);for (auto v : ve[u]) {if (v == fa) continue;if (!dfn[v]) {tarjan(v, u);low[u] = min(low[u], low[v]);if (low[v] >= dfn[u]) {      // 发现点双int now = 0;sid++;    // 方点id,初始值为nvn[u].push_back(sid);    //建双向边vn[sid].push_back(u);while (now != v) {now = sta.top();vn[now].push_back(sid);    //建双向边vn[sid].push_back(now);sta.pop();}}} else {low[u] = min(low[u], dfn[v]);}}
}

例题

铁人两项
给定一张无向图,问有多少互不相同三元组<aaa, bbb, ccc>
使得存在一条从 aaabbb 经过 ccc 的简单路径。

题解

在同一个点双连通分量中,任意两点之间的所有简单路径的并集恰好构成该点双。对于任意两点,其简单路径所经过的点集可表示为路径上各点双的并集。在圆方树模型中,该点集对应为: 两个圆点路径上的所有圆点和路径上方点相邻的所有圆点 。由于限制条件 c≠ac ≠ ac=ac≠bc ≠ bc=b,最终答案为该点集大小减 2。 具体实现时,考虑圆方树上的权值设计: 将方点权值设为相邻圆点数量,并将圆点权值设为 -1(避免相邻方点重复计算),而路径端点不计入贡献。这样,圆方树上两圆点间路径的点权和即为所求答案。问题转化为统计树上所有圆点对的路径权值和,可通过树形 DP 计算每个点的贡献(点权 ×\times× 经过该点的路径数)来高效求解。

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

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

相关文章

亚马逊广告优化新逻辑:从人工苦力到AI智能的进化之路

"为什么我的广告花费越来越高&#xff0c;转化却越来越差&#xff1f;""如何在海量关键词中找到真正能带来转化的黄金词&#xff1f;""为什么手动调整出价总是跟不上流量变化的速度&#xff1f;""怎样才能避免因库存问题导致的广告权重暴跌…

【51单片机】【protues仿真】基于51单片机水位监测系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示当前水位值 2、按键设置水位上下限阈值 3、当水位低于下限&#xff0c;启动蜂鸣器警报并抽水至水位上限停止抽水 4、电机模拟水泵&#xff0c;蜂鸣器&#xff0c;指示…

白名单过滤的文件上传如何bypass:boot2root靶机之fristileaks

靶机提示 base64解码提取图片 文件上传之apache多后缀名解析漏洞 linpeas dirtycow提权 靶机下载 通过网盘分享的文件&#xff1a;FristiLeaks_1.3.ova 链接: https://pan.baidu.com/s/1ZWznp8egNGwnQqwh1gkSZg?pwdwwvp 提取码: wwvp --来自百度网盘超级会员v8的分享主…

Centos 8 管理防火墙

firewall-cmd 检查与安装 在 CentOS 8 上安装和启用 firewalld&#xff08;提供 firewall-cmd 工具&#xff09;的步骤如下&#xff1a;1. 检查 **firewalld** 是否已安装 在安装前&#xff0c;先检查系统中是否已安装&#xff1a; sudo firewall-cmd --version如果返回版本号&…

使用PPT进行科研绘图过程中常用的快捷键

PPT科研绘图常用快捷键速查表功能类别快捷键功能描述基础操作与选择Ctrl A全选幻灯片上的所有对象。Ctrl D快速复制选中的对象&#xff0c;并自动保持等间距排列。Shift Click多选多个对象。Ctrl G将选中的多个对象组合成一个整体。Ctrl Shift G取消组合。Ctrl 拖动复制…

`strchr` 字符串查找函数

1) 函数的概念与用途 strchr 是 C 标准库中的一个基础但极其重要的字符串处理函数&#xff0c;它的名字来源于"string chracter"&#xff08;字符串字符&#xff09;。这个函数的功能非常明确&#xff1a;在字符串中查找特定字符的第一次出现位置。 可以将 strchr 想…

Redis 678

Redis 8 是当前的最新稳定版&#xff08;截至 2024 年中&#xff09;&#xff0c;它在 Redis 7 的基础上带来了更多重要改进。我们来对这三个主要版本进行一次全面的功能和性能对比。 核心演进脉络 Redis 6 (2020)&#xff1a;多线程时代的开创者。解决了网络 I/O 瓶颈&#xf…

【大白话解析】 OpenZeppelin 的 Address 库:Solidity安全地址交互工具箱​(附源代码)

🧩 一、这个文件是干嘛的?—— Address.sol 是个“工具箱” 你可以把这个 Address.sol文件理解为一个 ​​“工具箱”​​,里面装了一堆​​专门用来安全地跟别的地址(账户或合约)打交道的工具函数​​。 在区块链世界里,地址(address)可以是: ​​外部账户(EOA)…

漫谈《数字图像处理》之测不准原理

在数字图像处理中&#xff0c;提到的 “测不准原理” &#xff0c;和量子力学里由海森堡提出的 “不确定性原理” &#xff08;Heisenberg uncertainty principle&#xff0c;也叫海森堡测不准原理&#xff09;有一定的类比关系&#xff0c;但本质上并不是同一个概念。以下为详…

Linux服务测试

一、环境准备确认 确保 4 台主机&#xff08;APPSRV、STORAGESRV、ROUTERSRV、CLIENT &#xff09;网络连接正常&#xff0c;虚拟机网卡模式按要求设置&#xff08;APPSRV、STORAGESRV 为 NAT 模式&#xff1b;ROUTERSRV 为双网卡&#xff0c;NAT 仅主机模式&#xff1b;CLIE…

2.Shell脚本修炼手册---创建第一个 Shell 脚本

2. 创建第一个 Shell 脚本 文章目录2. 创建第一个 Shell 脚本2.1 什么是 Shell 脚本&#xff1f;2.1.1 脚本开头&#xff1a;告诉系统用什么程序执行2.1.2 脚本注释&#xff1a;给人看的 “说明书”2.1.3 bash 与 sh 的区别2.2 如何执行 Shell 脚本&#xff1f;方法 1&#xff…

Day22 顺序表与链表的实现及应用(含字典功能与操作对比)

day22 顺序表与链表的实现及应用&#xff08;含字典功能与操作对比&#xff09; 使用顺序表实现查字典功能 支持连续查询单词&#xff0c;输入 #quit 退出程序。数据格式示例如下&#xff1a; a\0 indef art one\r\n word mean [---buf--->] [---i--…

51单片机与stm32单片机,先学习哪一个?

纠结 51 单片机和 STM32 该先学哪个&#xff0c;就像刚学开车的人在自动挡和手动挡之间打转。有人一上来就爱开自动挡&#xff0c;踩着油门就能跑&#xff0c;不用琢磨换挡踩离合的门道&#xff1b;有人偏要从手动挡练起&#xff0c;哪怕起步时熄十几次火&#xff0c;也得搞明白…

DS 0 | 数据结构学习:前言

数据结构是CS最基础、最重要的课程之一在学习数据结构时&#xff0c;通常来讲&#xff0c;学生遇到的难点不在于对数据结构的理解&#xff0c;而在于如何写程序。即编写特定的程序&#xff0c;来实现这些数据结构&#xff0c;特别是如何按照面向对象思想将一个个数据结构设计成…

JVM-(8)JVM启动的常用命令以及参数

JVM启动的常用命令以及参数 在上文 JVM 堆内存逻辑分区 中已经使用过一些 jvm 启动命令&#xff0c;本文着重讲述JVM启动命令用法以及一些常用的参数 一. 基本命令格式 java [options] classname [args...] java [options] -jar filename.jar [args...]① [options] - 命令行…

GO学习记录七——上传/下载文件功能,添加启动运行工具

本来计划是学习Docker部署的&#xff0c;研究了一天没搞出来&#xff0c;得出结论是需要翻墙&#xff0c;懒得弄了&#xff0c;暂时放置。 一、以下是&#xff0c;上传/下载代码&#xff0c;和之前是重复的&#xff0c;只多添加了&#xff0c;上传/下载功能。 测试目录为工程根…

SQL中对视图的操作命令汇总

以下是基于搜索结果整理的SQL视图操作命令汇总&#xff0c;按功能分类说明&#xff1a; 一、创建视图 使用 CREATE VIEW 语句定义视图&#xff0c;需指定视图名称和基础查询表达式&#xff1a; CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHER…

【Spring Cloud 微服务】2.守护神网关Gateway

目录 1.API网关的作用 2.Spring Cloud Gateway 是什么&#xff1f; 3.核心由来与背景 1. 微服务架构的挑战&#xff1a; 2. API 网关模式的兴起&#xff1a; 3. Zuul 的局限性&#xff1a; 4. Spring Cloud Gateway 的诞生&#xff1a; 4.核心特征&#xff1a; 5.核心概…

解读商业智能BI,数据仓库中的元数据

之前的文章讨论过数据分析、数据治理、数据仓库等等&#xff0c;即使是非业内人员从字面意思&#xff0c;也是可以了解一二的&#xff0c;但是&#xff0c;很多人对于元数据可能就比较陌生了。那么&#xff0c;今天我们就来聊一聊元数据管理。数据仓库要说元数据&#xff0c;那…

3 种无误的方式删除 Itel 手机上的短信

如果你希望释放存储空间、保护隐私&#xff0c;或者准备出售或转让手机&#xff0c;删除 Itel 手机上的短信是一个实用的步骤。无论是收件箱中充斥着垃圾短信、过时的对话还是敏感内容&#xff0c;删除不需要的短信可以让你的消息体验更加干净和安全。本文将向你介绍 3 种简单且…