2023河南萌新联赛第(六)场:河南理工大学 C - 旅游
2023河南萌新联赛第(六)场:河南理工大学 C - 旅游
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
Special Judge, 64bit IO Format: %lld
题目描述
小C喜欢旅游,现在他要去DSH旅游,DSH里有nnn个城市和 n − 1 n-1 n−1 条双向道路(每条道路长度为1),每条道路连接两个城市,并且任意两个城市都可以通过这些的道路互相到达。现在小C要使用魔法指定传送到DSH里的一个城市,作为他旅游的出发城市,小C旅游遵从以下原则:
- 当小C抵达一个城市的时候,他会去跟当前这个城市相连的城市;
- 他只去他以前没有去过的城市;
- 在每个城市,小C以相同的概率移动去上述符合要求的城市;
- 当没有这样的城市(可走)时,小C就停下了。
由于小C太喜欢DSH了,所以请你告诉小C,在他可以指定传送出发城市的情况下,他的旅游路径的期望最大值是多少。
输入描述:
第1行一个整数 n ( 1 ≤ n ≤ 100000 ) n(1\leq n \leq 100000) n(1≤n≤100000),表示DSH有 n n n个城市;
接下来 n − 1 n-1 n−1行,每行包含两个整数 a a a和 b ( 1 ≤ a , b ≤ n ) b (1 \leq a, b \leq n) b(1≤a,b≤n),表示城市 a a a和城市 b b b之间有一条双向道路。
输出描述:
输出一个数,表示这次旅游期望可以达到的最大值,保留三位小数。
示例1
输入
4
1 2
1 3
2 4
输出
3.000
说明
如上图:
如果初始传送至城市3,那么他的旅游路径是 ( 3 , 1 , 2 , 4 ) (3,1,2,4) (3,1,2,4),总距离为3,期望为3;
如果初始传送至城市1,那么他的旅游路径可以是 ( 1 , 2 , 4 ) (1,2,4) (1,2,4),总距离为2,也可以是 ( 1 , 3 ) (1,3) (1,3),总距离为1,所以期望是1.5;
如果初始传送至城市2,那么他的旅游路径可以是 ( 2 , 4 ) (2,4) (2,4),总距离是1,也可以是 ( 2 , 1 , 3 ) (2,1,3) (2,1,3),总距离是2,所以期望是1.5;
如果初始传送至城市4,那么他的旅游路径是 ( 4 , 2 , 1 , 3 ) (4,2,1,3) (4,2,1,3),总距离为3,期望为3。
所以最大期望是3。
示例2
输入
7
1 4
1 2
4 5
4 3
2 7
2 6
输出
3.000

import java.io.*;
import java.util.ArrayList;public class Main {static int N = 100010;static ArrayList<Integer>[] adj = new ArrayList[N];static double[] downsum = new double[N];static double[] downavg = new double[N];static double[] upsum = new double[N];static double[] upavg = new double[N];public static void dfs1(int u, int fa) {for (int v : adj[u]) {if (v == fa) continue;dfs1(v, u);downsum[u] += downavg[v];}if (adj[u].size() == 1) downavg[u] = 0;else downavg[u] = downsum[u] / (adj[u].size() - (fa != 0 ? 1 : 0)) + 1;}public static void dfs2(int u, int fa) {for (int v : adj[u]) {if (v == fa) continue;upsum[v] = upavg[u] + downsum[u] - downavg[v];upavg[v] = upsum[v] / (adj[u].size() - 1) + 1;dfs2(v, u);}}public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int n = Integer.parseInt(bf.readLine());if (n == 1) {bw.write("0.000\n");} else if (n == 2) {bw.write("1.000\n");} else {for (int i = 1; i <= 100000; i++) adj[i] = new ArrayList<>();for (int i = 1; i <= n - 1; i++) {String[] str = bf.readLine().split(" ");int u = Integer.parseInt(str[0]);int v = Integer.parseInt(str[1]);adj[u].add(v);adj[v].add(u);}int root = 1;while (adj[root].size() == 1) root++;dfs1(root, 0);dfs2(root, 0);double res = 0;for (int i = 1; i <= n; i++) {res = Math.max(res, 1 + (upavg[i] + downsum[i]) / adj[i].size());}bw.write(String.format("%.3f\n", res));}bw.close();}
}
相关文章:
2023河南萌新联赛第(六)场:河南理工大学 C - 旅游
2023河南萌新联赛第(六)场:河南理工大学 C - 旅游 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K Special Judge, 64bit IO Format: %lld 题目描述 小C喜欢旅游…...
Java | IDEA中Netty运行多个client的方法
想要运行多个client但出现这种提示: 解决方法 1、打开IDEA,右上角找到下图,并点击 2、勾选...
【蓝桥杯】 [蓝桥杯 2015 省 A] 饮料换购
原题链接:https://www.luogu.com.cn/problem/P8627 1. 题目描述 2. 思路分析 小伙伴们如果没有思路可以看看这篇文章~(这里很详细讲解了三种方法!) https://blog.csdn.net/m0_62531913/article/details/132385341?spm1001.2014…...
操作系统-笔记-第三章-内存管理
🌸章节汇总 一、第一章——操作系统的概念 二、第二章——【进程】 二、第二章——【线程】编辑 二、第二章——【进程调度】 二、第二章——【进程同步与互斥】 二、第二章——【锁】 三、第三章——内存管理 四、第四章——文件管理 五、第五章——输入输出管理…...
详解单体架构和微服务(概念,优缺点和区别)
单体架构和微服务 单体架构和微服务架构区别?为什么要用微服务架构? 单体架构的整个系统是一个War包,即war包走天下。微服务架构的项目是很多个war包(一个子系统一个)。 单体架构的优点: 架构简单开发测试部署简单…...
储能运行约束的Matlab建模方法
最近一段时间有很多人问我最优潮流计算中储能系统的建模方法。部分朋友的问题我回复了,有些没有回消息的,我就不再一一回复了,在这里我写一篇博客统一介绍一下。 1.储能系统介绍 首先,让【GPT】简单介绍一下储能系统:…...
微信小程序 车牌号输入组件
概述 一个小组件,用于方便用户输入车牌号码 详细 概述 有时候我们开发过程中会遇到需要用户输入车牌号的情况,让客户通过自带键盘输入,体验不好且容易出错,例如车牌号是不能输入O和I的,因此需要有一个自定义的键盘…...
Bootstrap Blazor 实战动态表单组件
1.新建工程 源码 新建工程b18ValidateForm,使用 nuget.org 进行 BootstrapBlazor 组件安装, Chart 库,字体. 将项目添加到解决方案中 dotnet new blazorserver -o b18ValidateForm dotnet add b06chart package BootstrapBlazor dotnet add b06chart package BootstrapBlazo…...
Elasticsearch 集成---Spark Streaming 框架集成
一.Spark Streaming 框架介绍 Spark Streaming 是 Spark core API 的扩展,支持实时数据流的处理,并且具有可扩展, 高吞吐量,容错的特点。 数据可以从许多来源获取,如 Kafka , Flume , Kin…...
Kotlin 中的 协程 基础篇
一、什么叫协程 协程可以称为轻量级线程,线程代码块; 二、GlobalScope 协程 CoroutineScope (协程作用域) 的上下文中通过 launch、async 等构造器来启动。GlobalScope ,即全局作用域内启动了一个新的协程,这意味这该协程的生命周期只受整…...
SQL事务
事务的概念: 事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动执行,也可以由某种数据库程序自动执行。事务就是一些SQL语句组(每条单独的SQL语句也算一个事务),其中事务中的SQL…...
关于flutter中 initState() 与 setState() 用法
initState()函数是在组件渲染之前执行的。在Flutter中,initState()是StatefulWidget的生命周期方法之一,在调用build()方法之前被调用。当创建一个StatefulWidget并将其添加到组件树中时,Flutter会实例化该组件的状态对象,并在调用…...
智能电话机器人是如何自主学习的
电话机器人主要通过语音识别和针对语意的理解识别客户所说的内容,针对性的回答问题,为企业高效筛选意向客户。除了电话机器人语音识别之外,电话机器人能够自主学习,不断完善产品知识及话术等,是它智能的另一种体现。那…...
【Rust】Rust学习 第十八章模式用来匹配值的结构
模式是 Rust 中特殊的语法,它用来匹配类型中的结构,无论类型是简单还是复杂。结合使用模式和 match 表达式以及其他结构可以提供更多对程序控制流的支配权。模式由如下一些内容组合而成: 字面值解构的数组、枚举、结构体或者元组变量通配符占…...
我的学习笔记:数据处理
数据清洗 对数据进行处理和加工,以使其适合分析和建模。数据清洗包括去除重复数据、填补缺失值、处理异常值和转换数据格式等操作,以提高数据的可靠性和准确性,避免数据分析时出现偏差,提高决策的准确性。 数据去重:通…...
GB28181国标平台测试软件NTV-GBC(包含服务器和模拟客户端)
GB28181国标平台测试软件NTV-GBC用于对GB28181国标平台进行测试(测试用例需要服务器软件,服务器软件可以是任何标准的国标平台,我们测试使用的是NTV-GBS),软件实现了设备注册、注销、目录查询,消息订阅、INVITE&#x…...
云原生:重塑企业的技术疆界
云原生技术正在重新塑造我们对软件开发、部署和运维的理解。这些技术带来了灵活性、可扩展性以及在复杂环境中保证稳定性的可能性,这些都是企业在云原生场景中比较关注的问题。本文将主要聚焦于云原生场景,探讨其影响和作用。 云原生的定义 云原生计算基…...
华为星闪,一项将 “ 更稳 WiFi ” 和 “ 更好蓝牙 ” 融合起来的通信标准
兼顾多用途和专业化的 AI 大模型、移除安卓代码的 HarmonyOS NEXT 、给折叠屏应用提供适配方向的《 折叠屏/平板应用体验评估标准 》。。。 不过除了这些比较贴近我们普通用户,容易讲清楚的东西,华为还官宣了一个大家可能没注意的黑科技: 星…...
IDEA创建Mybatis格式XML文件
设置位置:File | Settings | Editor | File and Code Templates 选择Files,点击号 Name中输入xml模板名(名称自行决定),后缀名extension输入xml(固定) 内容处输入Mybatis的xml文件模板内容&…...
二叉树中的最大路径和-递归
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

