当前位置: 首页 > news >正文

2023河南萌新联赛第(六)场:河南理工大学-C 旅游

2023河南萌新联赛第(六)场:河南理工大学

https://ac.nowcoder.com/acm/contest/63602/C

文章目录

  • 2023河南萌新联赛第(六)场:河南理工大学
    • 题意
    • 解题思路
    • 代码

题意

小C喜欢旅游,现在他要去DSH旅游,DSH里有 n n n个城市和 n − 1 n−1 n1条双向道路(每条道路长度为1),每条道路连接两个城市,并且任意两个城市都可以通过这些的道路互相到达。现在小C要使用魔法指定传送到DSH里的一个城市,作为他旅游的出发城市,小C旅游遵从以下原则:

  1. 当小C抵达一个城市的时候,他会去跟当前这个城市相连的城市;
  2. 他只去他以前没有去过的城市;
  3. 在每个城市,小C以相同的概率移动去上述符合要求的城市;

当没有这样的城市(可走)时,小C就停下了。
由于小C太喜欢DSH了,所以请你告诉小C,在他可以指定传送出发城市的情况下,他的旅游路径的期望最大值是多少。

解题思路

先确定 1 1 1为根节点,设 d p x dp_x dpx表示以 x x x为根的子树内走过节点个数的期望值,则 d p x = 1 + 1 ∣ s o n x ∣ ∑ s ∈ s o n x d p s dp_x=1+\frac{1}{|son_x|}\sum_{s\in son_x}dp_s dpx=1+sonx1ssonxdps,求出后,设 f x f_x fx表示以 x x x为出发点,经过节点个数的期望值,显然 f 1 = d p 1 f_1=dp_1 f1=dp1,可以用换根 d p dp dp O ( n ) O(n) O(n)求出 { f } \{f\} {f},对于 f x f_x fx,其值包括其原来的子树的贡献和原来的父亲 f a fa fa的贡献。首先考虑子树,贡献为 1 ∣ s o n x + 1 ∣ ∑ s ∈ s o n x f s \dfrac{1}{|son_x+1|}\sum_{s\in son_x}f_s sonx+1∣1ssonxfs,可以发现 ∑ s ∈ s o n x f s = ( d p x − 1 ) × ∣ s o n x ∣ \sum_{s\in son_x}f_s=(dp_x-1)\times|son_x| ssonxfs=(dpx1)×sonx,所以为 ∣ s o n x ∣ ∣ s o n x + 1 ∣ ( d p x − 1 ) \dfrac{|son_x|}{|son_x+1|}(dp_x-1) sonx+1∣sonx(dpx1)。对于 f a fa fa的贡献,包括以 f a fa fa为根的树的期望减去以 x x x为儿子的贡献,为 v e c f a . s i z e ( ) × f f a − d p x − 1 v e c f a . s i z e ( ) − 1 × 1 ∣ s o n x ∣ + 1 \dfrac{vec_{fa}.size()\times f_{fa}-dp_x-1}{vec_{fa}.size()-1}\times\dfrac{1}{|son_x|+1} vecfa.size()1vecfa.size()×ffadpx1×sonx+11(之所以用 v e c f a . s i z e ( ) vec_{fa}.size() vecfa.size()是避免 f a = 1 fa=1 fa=1时再分类讨论),加上其本身,整理可得:
f x = 1 ∣ s o n x ∣ + 1 ( ( d p x − 1 ) × ∣ s o n x + 1 ∣ + v e c f a . s i z e ( ) × f f a − d a x − 1 v e c f a . s i z e ( ) − 1 ) + 1 f_x=\dfrac{1}{|son_x|+1}((dp_x-1)\times|son_x+1|+\dfrac{vec_{fa}.size()\times f_{fa}-da_x-1}{vec_{fa}.size()-1})+1 fx=sonx+11((dpx1)×sonx+1∣+vecfa.size()1vecfa.size()×ffadax1)+1
记得 g g g表示的是节点数,答案要求路径长,要将最大值减一。

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n;
double dp[N],f[N],ma;
vector<int>ve[N];
void dfs1(int u,int fa){int cnt=(ve[u].size()-(u!=1?1:0));for(auto v:ve[u]){if(v==fa)continue;dfs1(v,u);dp[u]+=1.0/cnt*dp[v];}dp[u]=dp[u]+1;
}
void dfs2(int u,int fa){ma=max(f[u],ma);int sum=ve[u].size();for(auto v:ve[u]){if(v==fa)continue;int cnt=ve[v].size()-1;f[v]=(1.0*(dp[v]-1)*cnt+(sum>1?(sum*f[u]-dp[v]-1)/(sum-1):1))/(cnt+1)+1;dfs2(v,u);}
}
int main(){cin>>n;for(int i=1;i<n;i++){int u,v;cin>>u>>v;ve[u].push_back(v);ve[v].push_back(u);}dfs1(1,0);f[1]=dp[1];dfs2(1,0);printf("%.3lf",ma-1);
}

相关文章:

2023河南萌新联赛第(六)场:河南理工大学-C 旅游

2023河南萌新联赛第&#xff08;六&#xff09;场&#xff1a;河南理工大学 https://ac.nowcoder.com/acm/contest/63602/C 文章目录 2023河南萌新联赛第&#xff08;六&#xff09;场&#xff1a;河南理工大学题意解题思路代码 题意 小C喜欢旅游&#xff0c;现在他要去DSH旅…...

C语言 常用工具型API ----------strchr()

函数原型 char *strchr(const char *str, int c) 参数 str-- 要被检索的 C 字符串。 c-- 在 str 中要搜索的字符。 功能 在参数str所指向的字符串中搜索第一次出现字符c&#xff08;一个无符号字符&#xff09;的位置 头文件 #include <string.h> 返回值 返回一…...

建造者模式的理论与实现

本文实践代码仓库&#xff1a;https://github.com/goSilver/my_practice 文章目录 一、定义二、作用三、实现四、总结 一、定义 建造者模式是一种创建复杂对象的设计模式。它将一个复杂对象的构建过程分解为多个简单的步骤&#xff0c;并且允许按照特定的顺序来构建对象。通过…...

非计算机科班如何顺利转码进入计算机领域?

文章目录 如何规划才能实现转码&#xff1f;计算机岗位发展前景&#xff1f;现阶段转码 总结 &#x1f389;欢迎来到Java学习路线专栏~探索非计算机科班如何顺利转码进入计算机领域 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f3…...

【C++类和对象】类有哪些默认成员函数呢?(下)

文章目录 一、类的6个默认成员函数二、日期类的实现2.1 运算符重载部分2.2 日期之间的运算2.3 整体代码1.Date.h部分2. Date.cpp部分 三. const成员函数四. 取地址及const取地址操作符重载扩展内容 总结 ヾ(๑╹◡╹)&#xff89;" 人总要为过去的懒惰而付出代价ヾ(๑╹◡…...

springboot自定义banner的输出与源码解析

文章目录 一、介绍二、演示环境三、自定义banner1. 文本2. 图片3. placeholder占位符4. 关闭banner 四、源码分析1. 关闭banner2. banner模式3. banner打印器4. 打印banner① 获取banner② 打印banner 5. 版本号占位符的解析器6. 文本格式占位符的解析器7. 应用标题占位符的解析…...

LeetCode 141.环形链表

文章目录 &#x1f4a1;题目分析&#x1f4a1;解题思路&#x1f514;接口源码&#x1f4a1;深度思考❓思考1❓思考2 题目链接&#x1f449; LeetCode 141.环形链表&#x1f448; &#x1f4a1;题目分析 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中…...

Spring-Bean的生命周期

目录 生命周期汇总 细分生命周期 1.实例化 2.属性赋值&#xff08;依赖注入&#xff09; 3.Aware接口 4.BeanPostProcessor接口 5.初始化 6.销毁 测试验证 类结构 业务类 测试类 生命周期汇总 Spring Bean 的生命周期见下图 &#xff08;一定记忆好下图&#x…...

Cat(3):客户端集成—简单案例

接下来编写一个简单的springboot与Cat整合的案例 1 新建springboot项目 首先创建一个Spring Boot的初始化工程。只需要勾选web依赖即可。 2 添加 Maven 添加依赖 <dependency><groupId>com.dianping.cat</groupId><artifactId>cat-client</artifa…...

虚拟机/双系统Ubuntu扩容

虚拟机Ubuntu扩容 1.需要删除所有的快照 2.扩展虚拟机磁盘大小 虚拟机(M)→设置(s)→硬盘(SCSI)→扩展磁盘容量 3.Ubuntu内调整分区大小 安装gparted分区工具&#xff1a;sudo apt-get install gparted 启动gparted并resize分区 4.最后最好建一个快照&#xff0c;不然gg了…...

Nginx搭建本地服务器,无需购买服务器即可测试vue项目打包后的效果

一.前言 本文是在windows环境&#xff08;Linux环境下其实也大同小异&#xff09;下基于Nginx实现搭建本地服务器&#xff0c;手把手教你部署vue项目。 二.Nginx入门 1&#xff09;下载安装 进入Nginx官网下载&#xff0c;选择stable版本下的windows版本下载即可 2&#xff09;…...

SpringBoot 接口调用出现乱码解决 中文乱码

SpringBoot 接口调用出现乱码解决 package com.cxjg.mvc.util;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; import org.springfra…...

JDBC封装与设计模式

什么是 DAO &#xff1f; Data Access Object(数据存取对象) 位于业务逻辑和持久化数据之间实现对持久化数据的访问 DAO起着转换器的作用&#xff0c;将数据在实体类和数据库记录之间进行转换。 ----------------------------------------------------- DAO模式的组成部分 …...

小程序扫描二维码获取网址,通过Jsoup进行解析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 文章目录 前言 一、Jsoup是什么&#xff1f; 二、使用步骤 1.引入库 2.读入数据 总结 前言 vx开发小程序使用扫一扫时不同二维码展示的东西不一样,需要进行解析 提示&a…...

Kubernetes+EFK构建日志分析平台

目录 Elasticsearch产品介绍 Fluentd 工作原理 Kibana产品介绍 一、环境准备 前三个主机都要操作 1、主机初始化配置 2、部署docker环境 2、部署kubernetes集群 2.1、组件介绍 2.2、配置阿里云yum源 2.3、安装kubelet kubeadm kubectl 2.4、配置init-config.yaml …...

客服如何减轻工作压力?浅析客服压力管理方法

在现代商业领域中&#xff0c;客服是一项非常重要的工作&#xff0c;负责根据客户需求提供解决方案。客服工作不仅需要一定的专业知识和技能&#xff0c;还需要面对各种复杂、多变的情况&#xff0c;并拥有强大的应对压力的能力。客服从业人员的工作压力往往非常大&#xff0c;…...

知识储备--基础算法篇-二分搜索

1.前言 最近准备开始刷算法题了&#xff0c;搜了很多相关的帖子&#xff0c;下面三个很不错&#xff0c; 计算机视觉秋招准备过程看这个&#xff1a;​​​​​​计算机视觉算法工程师-秋招面经 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/399813916 复习深度学习相关…...

【MySQL系列】表内容的基本操作(增删查改)

「前言」文章内容大致是对MySQL表内容的基本操作&#xff0c;即增删查改。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、MySQL表内容的增删查改1.1 Create1.1.1 单行数据全列插入1.1.2 多行数据指定列插入1.1.3 插入否则更新1.1.4 数据替换 1.2 Ret…...

docker搭建LNMP

docker安装 略 下载镜像 nginx:最新版php-fpm:根据自己需求而定mysql:根据自己需求定 以下是我搭建LNMP使用的镜像版本 rootVM-12-16-ubuntu:/docker/lnmp/php/etc# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0…...

未出现过的最小正整数

给定一个长度为 n 的整数数组&#xff0c;请你找出未在数组中出现过的最小正整数。 样例 输入1&#xff1a;[-5, 3, 2, 3]输出1&#xff1a;1输入2&#xff1a;[1, 2, 3]输出2&#xff1a;4数据范围 1≤n≤105 , 数组中元素的取值范围 [−109,109]。 代码&#xff1a; c…...

如何在Windows电脑上直接安装Android应用:3种简单高效的APK安装方法

如何在Windows电脑上直接安装Android应用&#xff1a;3种简单高效的APK安装方法 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上流畅运行Android应用…...

nslookup-mcp:基于MCP协议的DNS查询工具部署与实战指南

1. 项目概述&#xff1a;一个为安全与开发场景设计的DNS查询工具如果你经常需要排查网络问题、分析域名配置&#xff0c;或者像我一样&#xff0c;在渗透测试或安全研究时&#xff0c;需要快速、批量地查询DNS记录&#xff0c;那么命令行里的nslookup或dig工具可能已经让你感到…...

叫不动下属、又不能裁?中层必看!不撕破脸、不内耗,3招拿捏摆烂员工

很多中层都有这样的困境&#xff1a;上面领导催进度&#xff0c;下面员工躺平摆烂&#xff0c;叫不动、推不动&#xff1b;想辞退&#xff0c;却因编制、合同等原因动不了&#xff0c;要么硬刚撕破脸&#xff0c;要么忍气吞声自己扛&#xff0c;内耗严重还没成效。 其实&#…...

贾子理论体系:公理化东方智慧与现代科学工程化的认知范式

贾子理论体系&#xff1a;公理化东方智慧与现代科学工程化的认知范式摘要 贾子&#xff08;本名贾龙栋&#xff0c;笔名Kucius&#xff09;于2025–2026年间构建以“1-2-3-4-5”公理架构为核心的跨学科认知体系&#xff0c;涵盖思想主权元公理、两大规律、三大定律、四大支柱与…...

【限时开放】DeepSeek内部调试工具集首次对外披露:含Request ID全链路追踪、模型响应热力图与异常模式识别器

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek API接入开发教程 DeepSeek 提供了稳定、高性能的大模型 API 接口&#xff0c;支持文本生成、对话补全与函数调用等多种能力。接入前需在官方控制台申请 API Key&#xff0c;并确保账户已开通对…...

WPF老鸟的Avalonia初体验:用VS2022+Ubuntu虚拟机,从零到发布Linux安装包

WPF开发者实战Avalonia跨平台&#xff1a;VS2022Ubuntu全流程指南 当微软宣布.NET跨平台战略时&#xff0c;许多WPF开发者都看到了将桌面应用扩展到Linux和macOS的可能性。作为一个长期依赖WPF构建企业级应用的开发者&#xff0c;我第一次接触Avalonia时&#xff0c;最惊讶的是…...

PowerBI主题模板终极指南:35款可视化模板快速美化报表

PowerBI主题模板终极指南&#xff1a;35款可视化模板快速美化报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&#…...

从网线到数据包:手把手拆解以太网帧,搞懂GMAC接口到底在忙啥

从网线到数据包&#xff1a;手把手拆解以太网帧&#xff0c;搞懂GMAC接口到底在忙啥 当我们在浏览器输入一个网址&#xff0c;敲下回车键的瞬间&#xff0c;数据便开始了一场奇妙的旅程。这场旅程的起点&#xff0c;往往是一根不起眼的网线&#xff0c;而GMAC接口则是这场旅程中…...

Visio从入门到精通:高效绘图与自定义库实战指南

1. Visio快速入门&#xff1a;从零到第一张流程图 第一次打开Visio时&#xff0c;很多人都会被满屏的工具栏和陌生的术语吓到。其实Visio的核心逻辑非常简单——就像小时候玩的拼图游戏。你只需要从左侧模具库拖出图形&#xff0c;在画布上拼接组合&#xff0c;再用连接线把它们…...

电子测试安全:示波器浮地测量与隔离变压器应用全解析

1. 项目概述&#xff1a;一次关于测试测量安全的深度探讨又到了周五&#xff0c;对于很多工程师来说&#xff0c;这可能是最想摸鱼但又不得不处理手头棘手问题的一天。想象一下这个场景&#xff1a;你面前摆着一台直接从市电取电的设备&#xff0c;它的某个测试点对地可能有高达…...