Day2 图连通

news2024/11/26 9:34:31

A - PRO-Professor Szu

简单的来说就是 缩点、反图拓扑。

需要注意不与 n + 1 n+1 n+1 联通的点可能会使得一些点的入度无法为 0 而无法入队,消除这些点的影响即可。

当时写的:
在这里插入图片描述

D - BLO-Blockade

非割点: 2 ( n − 1 ) 2(n-1) 2(n1)

割点:删去割点会将图划分为若干个连通块,不重复地计算这些连通块之间的方案数即可。

G - 杀人游戏

水题。

很容易想到缩点之后找入度为 0 0 0 的点。

注意一下特殊的点,如孤立点,或者是入度为 0 0 0 且指向的点都有别的点指向他(认识的人都有被其他至少一人认识)。

H - 建造军营

关于状态设计:
在这里插入图片描述

u u u 为根的子树截答案结构是什么?设计 f u f_u fu 表示以 u u u 为根的子树中有军营的方案数,其中建造的军营与 u u u 之间的边都被保护。设计 g u g_u gu 表示以 u u u 为根子树中没有军营的方案数(也可以根据点数推, g g g 辅助作用)。

V u , E u V_u,E_u Vu,Eu 为边双树上点 u u u 的点数和边数

初始值 g u = 2 E u g_u = 2^{E_u} gu=2Eu f u = 2 V u + E u − g u f_u=2^{V_u+E_u}-g_u fu=2Vu+Eugu

对于 f u f_u fu 的转移可以考虑儿子 v v v 的贡献:

  • v v v 之前子树非空, v v v 可以空或非空,贡献为 f u ← f u × ( 2 × g v + f v ) f_u \larr f_u \times (2\times g_v+f_v ) fufu×(2×gv+fv)
  • v v v 之前子树空, v v v 必不空,贡献为 f u ← f u + g u × f v f_u \larr f_u + g_u \times f_v fufu+gu×fv(这里 g u g_u gu 是在考虑 v v v 之前)。

对于 g u g_u gu 的转移: g u = ∏ ( 2 × g v ) g_u = \prod (2\times g_v) gu=(2×gv)

得到具体的 f f f 值后,考虑如何统计答案: f v f_v fv 可以确定子树内的情况,子树外需要通过设计使得每个 f f f 不会重复计算。

我们发现在确定 f v f_v fv 后,若不选 v → u v \to u vu,则这样的方案一定不在 f u f_u fu 中。每个点都统计不选到父亲的边的方案数 a n s i ans_i ansi,可以保证每个点这样的方案数互不重叠。记 s i z siz siz 表示子树内总边数,则子树外有 2 m − s i z v − 1 2^{m-siz_v-1} 2msizv1 种方案, a n s v = f v × 2 m − s i z v − 1 ans_v=f_v \times 2^{m-siz_v-1} ansv=fv×2msizv1。特别的,对于 1 1 1 号点, a n s 1 = f 1 ans_1 = f_1 ans1=f1

最终方案数即为 ∑ a n s i \sum ans_i ansi

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

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

相关文章

【环信集成教程】环信的那些”已读“功能实现及问题解决

写在前面 在调用环信的消息回执时,是否有以下的烦恼 1、发送了消息已读回执,为什么消息列表页的未读数没有发生变化? 2、发送了消息已读回执,为什么消息漫游拉取不到已读状态? 如果你有这些烦恼,那就继续…

大量SDK设备接入时,如何巧妙配置EasyCVR平台参数?

EasyCVR视频融合平台可支持海量视频的轻量化接入与汇聚管理。在视频能力上,EasyCVR可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、智能分析以及平台级联等。平台支持多协议接入,包括国标GB28181、RTMP、RTSP/Onvif、海…

【QT/OpenCV】QT实现张正友相机标定

相机标定 01、相机标定02、OpenCV函数及其张正友标定法2.1、相机标定步骤2.2、相机标定相关函数2.2.1 提取角点--- findChessboardCorners2.2.2 亚像素角点提取1--- find4QuadCornerSubpix2.2.3 亚像素角点提取2--- cornerSubPix2.2.4 绘制内角点 --- drawChessboardCorners2.2…

操作系统复习(非抢占式的优先数调度算法)

今天在写题目的时候遇到了一个问题,在非抢占式的优先数调度算法中,存在一种情况。优先级相同,并且同时到达,这种情况下,短作业优先。例如: 这种情况下,调度顺序为:P1、P2、P4、P3。

终极实时测试工具:NCrunch 4.17 for vs19-22 Crack

适用于 .NET 的终极实时测试工具 在编码时以内联方式查看实时测试结果和指标。 Visual Studio 的自动并发测试 NCrunch 是一个全自动测试扩展,旨在使编码和测试变得轻而易举。 忘记停下来运行测试,让 NCrunch 为您完成工作。 以您认为的速度编码和测试…

记录一个AFR去嵌S参数异常的案例。

最近在使用AFR去嵌一个S参数的时候,遇到了如下问题: 首先介绍一下这个S参数,一端是MCIO连接器,另一端是CEM连接器,所以测试的时候一端接MCIO测试治具,一端接CEM测试治具,再通过线缆将测试治具连…

c++--继承

1.什么是继承 C有面向对象三大特性,封装,继承,多态,封装。而继承就是代码可以复用的重要手段。他可以让程序员在原有类的基础上进行扩展,增加功能,产生新的类,称为子类或派生类,继承…

【监控系统】Prometheus监控组件Node-Exporter配置实战

这一节,我们来配置一下Node-Exporter,那么我们先来了解一下什么是Prometheus的Exporter? 任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,它是一种用于将不同数据源的指标提供给Prometheus进行收集和监控的工具…

会议口译服务,如何做好长交传翻译?

如何做好长交传翻译工作?我们知道,长交传是会议口译中常见的一种翻译方式,难度比较大,需要不间断的听取长度为3至5分钟的段落然后进行口译。那么,在进行长交传翻译练习中,如何提升交传口译的能力&#xff0…

Linux系统使用(超详细)

目录 Linux操作系统简介 Linux和windows区别 Linux常见命令 Linux目录结构 Linux命令提示符 常用命令 ls cd pwd touch cat echo mkdir rm cp mv vim vim的基本使用 grep netstat Linux面试题 Linux操作系统简介 Linux操作系统是和windows操作系统是并列…

JavaScript--改变 HTML 的值

要改变 HTML 元素的值,可以使用以下方法: 1.使用元素节点的 innerText 属性来改变元素的文本内容。 例如:element.innerText 新的文本内容; 2.使用元素节点的 innerHTML 属性来改变元素的 HTML 内容。 例如:element.innerHTML …

ModaHub魔搭社区:Zilliz Cloud 版本类型和价格计算器教程

目录 企业版 专有部署 价格计算器 在配置集群前,您需要先选择版本。Zilliz Cloud 各版本提供不同的服务体验、计费模型,且性能及可扩展性也都有所不同 。目前, Zilliz Cloud 共有 2 个版本可供选择,以满足多样的用户需求。 企业版专有部署2 个不同的版本为不同的用户需求…

python pytest脚本执行工具

pytest脚本执行工具 支持获取当前路径下所有.py脚本 添加多个脚本,一起执行 import tkinter as tk from tkinter import filedialog import subprocess import os from datetime import datetimedef select_script():script_path filedialog.askopenfilename(fil…

Redis 从入门到精通【进阶篇】之高可用哨兵机制(Redis Sentinel)详解

文章目录 0.前言1. 原理详解1.1. 哨兵机制的组建1.1. 哨兵是如何知道从库的信息 1.2. 主库下线的判定1.3. 哨兵集群选举1.4. 故障的转移 2. 总结3. Redis从入门到精通系列文章4. Redis哨兵模式面试题4. 1. 什么是Redis的哨兵模式?4. 2. 哨兵模式的优点是什么&#x…

云原生TDengine-v3.0部署手册

云原生TDengine-v3.0部署手册 一、管理namespace1.1 创建namespace1.2 namespaces列表 二、配置3份yaml文件2.1 tdengine3-storage-class.yaml2.2 taosd-service.yaml2.3 taosd-tdengine.yaml 三、服务部署3.1 部署StorageClass3.2 部署Service3.3 部署StatefulSet3.4 查看启动…

Linux--环境变量

指令分为两种: ①路径指令 比如我们都知道输入ls的作用是显示当前文件及目录,并且ls的路径是/usr/bin/ls。那么我输入ls与/usr/bin/ls的作用是等价的。之所以带路径,是因为不带路径找不到命令 ②系统指令 ls就是嵌入了环境变量后&#xff0c…

C语言程序设计——指针

一、字符指针 字符指针char*两种使用方法: //用法一:指向一个字符变量 char ch a; char* pc &ch; //用法二:指向一个字符串首地址 const char* p "abcde"; //注意p存储的是字符串的首地址,也就是字符a的地址。 …

基于node.js和Vue3的医院信息管理挂号系统

随着时代的发展,无线互联网技术的应用和普及给人们的生活带来了极大的改变,现在信息技术不仅可以提高我们的工作效率,还能有效的规避一些错误风险,节约人力成本。我国国民一方面对健康的要求越来越重视了,另一方面现代人的健康问题日益严重,所以医院信息…

【imarkdown】一个轻量级markdown图片链接转换器

imarkdown imarkdown是一个轻量级markdown图片链接转换器,你可以轻松地对图片链接进行本地到图片服务器、图片服务器到本地、图片服务器到图片服务器的转换。 因为语雀转markdown的时候图片存在防外链行为,如果想要把转出的markdown发表在其他平台&…